[gem5-users] Re: Deadlock with pthread and DerivO3CPU in SE mode

2021-12-16 Thread Jason Lowe-Power via gem5-users
Hi Brian,

You can try the patch linked below if you want x86 + multicore + classic.
There is a download button on that page. However, this isn't "officially"
supported.

Some Ruby protocols have been tested with x86 and multiple cores. The
details on the gem5-resources website and/or repo should describe what's
been tested.

Cheers,
Jason

On Thu, Dec 16, 2021 at 10:36 AM Brian Schwedock via gem5-users <
gem5-users@gem5.org> wrote:

> Hi Jason,
>
> Thanks for the response.
>
> I will give full system mode a try. Will x86 + classic cache + multicore
> work with full system mode? Or do I also need to use, e.g., ruby caches?
>
> Thanks,
> Brian
>
> On Thu, Dec 16, 2021 at 9:23 AM Jason Lowe-Power 
> wrote:
>
>> Hi Brian,
>>
>> A few quick thoughts:
>> 1. x86 + classic cache + multicore is not supported. There is a changeset
>> on gerrit (https://gem5-review.googlesource.com/c/public/gem5/+/52303)
>> which may fix this, but it has not been tested widely.
>> 2. SE mode + pthreads will likely not work in all circumstances. The
>> system calls required for pthreads are complex and we may not have
>> implemented them to perfectly match their behavior on Linux
>> 3. Which leads to this: If you want to investigate multicore performance,
>> I would strongly suggest using full system mode. With gem5-resources (
>> https://resources.gem5.org/) it should be straightforward to set up. See
>> also the new gem5 standard library coming in gem5-21.2 (released next week)
>> as well.
>>
>> Cheers,
>> Jason
>>
>> On Wed, Dec 15, 2021 at 7:28 PM Brian Schwedock via gem5-users <
>> gem5-users@gem5.org> wrote:
>>
>>> Hi,
>>>
>>> I'm trying to run a simple multithreaded C++ application in SE mode, but
>>> I seem to be getting deadlock when running with DerivO3CPU. TimingSimpleCPU
>>> does not deadlock. I'm running on the develop branch without modification.
>>>
>>> Here is the configuration I'm running:
>>> ./build/X86/gem5.opt configs/example/se.py
>>> --cmd=/path/to/app --num-cpus=16 --cpu-type=DerivO3CPU --caches --l2cache 
>>> --l1d_size=64kB --l1i_size=16kB --l2_size=4MB --mem-type=DDR3_1600_8x8
>>>
>>> My application spawns 16 pthreads, and the threads perform atomic
>>> arithmetic operations and use pthread barriers. From what I can tell, the
>>> issue is that on one of the barriers only one or two threads are ever woken
>>> up once all threads are ready.
>>>
>>> When running with the above configuration, the simulation just hangs.
>>> When I run with ruby caches, the simulation eventually terminates from the
>>> Sequencer panicking on "Possible Deadlock detected."
>>>
>>> Are pthread barriers not currently supported? I tried using m5threads,
>>> but as per this issue (https://github.com/gem5/m5threads/issues/2), I
>>> can't compile it with my gcc and kernel versions.
>>>
>>> I would greatly appreciate any help with this issue.
>>>
>>> Thanks,
>>> Brian
>>> ___
>>> gem5-users mailing list -- gem5-users@gem5.org
>>> To unsubscribe send an email to gem5-users-le...@gem5.org
>>> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
>>
>> ___
> gem5-users mailing list -- gem5-users@gem5.org
> To unsubscribe send an email to gem5-users-le...@gem5.org
> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-users] Re: Deadlock with pthread and DerivO3CPU in SE mode

2021-12-16 Thread Brian Schwedock via gem5-users
Hi Jason,

Thanks for the response.

I will give full system mode a try. Will x86 + classic cache + multicore
work with full system mode? Or do I also need to use, e.g., ruby caches?

Thanks,
Brian

On Thu, Dec 16, 2021 at 9:23 AM Jason Lowe-Power 
wrote:

> Hi Brian,
>
> A few quick thoughts:
> 1. x86 + classic cache + multicore is not supported. There is a changeset
> on gerrit (https://gem5-review.googlesource.com/c/public/gem5/+/52303)
> which may fix this, but it has not been tested widely.
> 2. SE mode + pthreads will likely not work in all circumstances. The
> system calls required for pthreads are complex and we may not have
> implemented them to perfectly match their behavior on Linux
> 3. Which leads to this: If you want to investigate multicore performance,
> I would strongly suggest using full system mode. With gem5-resources (
> https://resources.gem5.org/) it should be straightforward to set up. See
> also the new gem5 standard library coming in gem5-21.2 (released next week)
> as well.
>
> Cheers,
> Jason
>
> On Wed, Dec 15, 2021 at 7:28 PM Brian Schwedock via gem5-users <
> gem5-users@gem5.org> wrote:
>
>> Hi,
>>
>> I'm trying to run a simple multithreaded C++ application in SE mode, but
>> I seem to be getting deadlock when running with DerivO3CPU. TimingSimpleCPU
>> does not deadlock. I'm running on the develop branch without modification.
>>
>> Here is the configuration I'm running:
>> ./build/X86/gem5.opt configs/example/se.py
>> --cmd=/path/to/app --num-cpus=16 --cpu-type=DerivO3CPU --caches --l2cache 
>> --l1d_size=64kB --l1i_size=16kB --l2_size=4MB --mem-type=DDR3_1600_8x8
>>
>> My application spawns 16 pthreads, and the threads perform atomic
>> arithmetic operations and use pthread barriers. From what I can tell, the
>> issue is that on one of the barriers only one or two threads are ever woken
>> up once all threads are ready.
>>
>> When running with the above configuration, the simulation just hangs.
>> When I run with ruby caches, the simulation eventually terminates from the
>> Sequencer panicking on "Possible Deadlock detected."
>>
>> Are pthread barriers not currently supported? I tried using m5threads,
>> but as per this issue (https://github.com/gem5/m5threads/issues/2), I
>> can't compile it with my gcc and kernel versions.
>>
>> I would greatly appreciate any help with this issue.
>>
>> Thanks,
>> Brian
>> ___
>> gem5-users mailing list -- gem5-users@gem5.org
>> To unsubscribe send an email to gem5-users-le...@gem5.org
>> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
>
>
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-users] Re: Deadlock with pthread and DerivO3CPU in SE mode

2021-12-16 Thread Jason Lowe-Power via gem5-users
Hi Brian,

A few quick thoughts:
1. x86 + classic cache + multicore is not supported. There is a changeset
on gerrit (https://gem5-review.googlesource.com/c/public/gem5/+/52303)
which may fix this, but it has not been tested widely.
2. SE mode + pthreads will likely not work in all circumstances. The system
calls required for pthreads are complex and we may not have implemented
them to perfectly match their behavior on Linux
3. Which leads to this: If you want to investigate multicore performance, I
would strongly suggest using full system mode. With gem5-resources (
https://resources.gem5.org/) it should be straightforward to set up. See
also the new gem5 standard library coming in gem5-21.2 (released next week)
as well.

Cheers,
Jason

On Wed, Dec 15, 2021 at 7:28 PM Brian Schwedock via gem5-users <
gem5-users@gem5.org> wrote:

> Hi,
>
> I'm trying to run a simple multithreaded C++ application in SE mode, but I
> seem to be getting deadlock when running with DerivO3CPU. TimingSimpleCPU
> does not deadlock. I'm running on the develop branch without modification.
>
> Here is the configuration I'm running:
> ./build/X86/gem5.opt configs/example/se.py
> --cmd=/path/to/app --num-cpus=16 --cpu-type=DerivO3CPU --caches --l2cache 
> --l1d_size=64kB --l1i_size=16kB --l2_size=4MB --mem-type=DDR3_1600_8x8
>
> My application spawns 16 pthreads, and the threads perform atomic
> arithmetic operations and use pthread barriers. From what I can tell, the
> issue is that on one of the barriers only one or two threads are ever woken
> up once all threads are ready.
>
> When running with the above configuration, the simulation just hangs. When
> I run with ruby caches, the simulation eventually terminates from the
> Sequencer panicking on "Possible Deadlock detected."
>
> Are pthread barriers not currently supported? I tried using m5threads, but
> as per this issue (https://github.com/gem5/m5threads/issues/2), I can't
> compile it with my gcc and kernel versions.
>
> I would greatly appreciate any help with this issue.
>
> Thanks,
> Brian
> ___
> gem5-users mailing list -- gem5-users@gem5.org
> To unsubscribe send an email to gem5-users-le...@gem5.org
> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s