Hi Jason,

Thank you for the reply. I am using trial and errors and printfs to
completely understand the thread creation, Basically My program is
multithreaded. Whenever there is a pthread_create I want to run the child
thread on the CPU that I added. This what I am trying to do.

Best,
Mahesh

On Tue, Dec 20, 2016 at 9:04 AM, Jason Lowe-Power <[email protected]>
wrote:

> Hi Mahesh,
>
> I think you probably need to call createThreads() on the core you're
> adding, but it's hard for me to say for certain without fully understanding
> everything you're trying to do. I would just try some things and use debug
> flags to understand what's going on. My solution with gem5 is often just to
> use trial and error.
>
> Jason
>
> On Mon, Dec 19, 2016 at 12:52 PM Mahesh Balasubramanian <[email protected]>
> wrote:
>
>> Hi Jason,
>>
>> I tried looking at createThreads() in BaseCPU.py and tried to create a
>> thread for my other process as well in modified se.py. I am adding my cpu
>> as tempCPU = [CPUClass(cpu_id = i) for i in xrange(np)] and then I do
>> tempCPU.append(myCPU(cpu_id=i)).
>>
>> Should I create a new loop for my cpu and do mycpu.createThreads()? My
>> only criteria is whenever I do a pthread_create that function should run on
>> my_cpu.
>>
>> Thank you in advance!
>>
>> Mahesh
>> On Thu, Dec 15, 2016 at 12:55 PM, Jason Lowe-Power <[email protected]>
>> wrote:
>>
>> Hi Mahesh,
>>
>> The problem is exactly what the fatal says: the sys_clone syscall
>> implementation assumes there is one thread context per process. You need to
>> either modify this implementation to understand your coprocessor or add a
>> thread context for the coprocessor in the config script.
>>
>> See createThreads() in src/cpu/BaseCPU.py.
>>
>> Jason
>>
>> On Tue, Dec 13, 2016 at 4:16 PM Mahesh Balasubramanian <[email protected]>
>> wrote:
>>
>> Hi everybody,
>>
>> I have  built my own ARM CPU in gem5 atomic, which works like a
>> coprocessor. Whenever there is a pthread_create call, that function runs on
>> mycpu and after pthread_join the progran executes on the main cpu.
>>
>> I am trying out multiple pthread_create-pthread_join pairs (2 pairs to
>> start with) for the only one function. When I compile my program using
>> -lpthread flag the program runs fine for the first create-join pair, but
>> when when it comes to second pthread_create, I get "*fatal: Called
>> sys_clone, but no unallocated thread contexts found!" *message.
>>
>> So then I compile my program by linking pthread.o from m5threads and ran
>> it. Now, in the first pthread_create my program does not exit and is stuck
>> (freezes with a blinking cursor) after executing mycpu, meaning it is not
>> exiting properly from mycpu.
>>
>> Surprisingly, I do not get any error when I run a function with hello
>> world. It runs perfectly when I use pthread.o to link.
>>
>> It would be great if someone could guide me in this problem.
>>
>> Best,
>> Mahesh
>>
>> _______________________________________________
>> gem5-users mailing list
>> [email protected]
>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>
>> --
>>
>> Jason
>>
>> _______________________________________________
>> gem5-users mailing list
>> [email protected]
>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>
>> _______________________________________________
>> gem5-users mailing list
>> [email protected]
>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>
> --
>
> Jason
>
> _______________________________________________
> gem5-users mailing list
> [email protected]
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to