Hi Juyoung,
Regarding the first deadlock:
The simulation actually doesn't give you anything useful since you have
--fixed-pkts --maxpackets=1 which basically means that each core will only
inject ONE packet whether you run it for 1000 or 1M cycles.
To run with more cycles, you should remove the --fixed-pkts options, or
increase the maxpackets.
The reason why you get a deadlock error is because the tester
(src/cpu/testers/networktest/networktest.cc) thinks there is a deadlock since
nothing happened for the past 500K cycles.
For the second deadlock, hmm thats weird. MOESI_hammer is a pretty rigorously
tested protocol.
Note that this is not a deadlock error: the error is that the cache controller
received a non-existent transition request.
BTW how did you compile a ALPHA_SE_MOESI_hammer? I thought the current gem5
version has no separate SE and FS versions…
Are you using the latest version?
Can you compile as scons build/ALPHA_MOESI_hammer/gem5.debug and re-try?
cheers,
Tushar
On May 9, 2012, at 7:39 PM, Juyoung Jung wrote:
> Hi Tushar,
>
> I installed the prerequisites having the following versions, and run the
> network tester.
> g++: 4.4.6 (rather than 4.4.5)
> python: 2.6.7 (rather than 4.4.6)
> swig: 1.3.40
> m4: 1.4.14
> gzip: 1.3.12
>
> The result was successful with a command
> ./build/ALPHA_SE_Network_test/gem5.debug
> ./configs/example/ruby_network_test.py --num-cpus=4 --num-dirs=4
> --topology=Mesh --mesh-rows=2 --sim-cycles=1000 --injectionrate=0.01
> --synthetic=0 --fixed-pkts --maxpackets=1 --garnet-network=fixed
>
> However, when I increased the simulation cycles up to 1M, it exited with
> deadlock error like this:
>
> gem5 compiled May 9 2012 15:40:30
> gem5 started May 9 2012 16:00:17
> gem5 executing on cairo1
> command line: ./build/ALPHA_SE_Network_test/gem5.debug
> ./configs/example/ruby_network_test.py --num-cpus=4 --num-dirs=4
> --topology=Mesh --mesh-rows=2 --sim-cycles=1000000 --injectionrate=0.01
> --synthetic=0 --fixed-pkts --maxpackets=1 --garnet-network=fixed
> warning: add_child('cls'): child 'credit_links0 credit_links1' already has
> parent
> warning: add_child('cls'): child 'credit_links0 credit_links1' already has
> parent
> warning: add_child('cls'): child 'credit_links0 credit_links1' already has
> parent
> warning: add_child('cls'): child 'credit_links0 credit_links1' already has
> parent
> warning: add_child('cls'): child 'credit_links0 credit_links1' already has
> parent
> warning: add_child('cls'): child 'credit_links0 credit_links1' already has
> parent
> warning: add_child('cls'): child 'credit_links0 credit_links1' already has
> parent
> warning: add_child('cls'): child 'credit_links0 credit_links1' already has
> parent
> warning: add_child('cls'): child 'credit_links0 credit_links1' already has
> parent
> warning: add_child('cls'): child 'credit_links0 credit_links1' already has
> parent
> warning: add_child('cls'): child 'credit_links0 credit_links1' already has
> parent
> warning: add_child('cls'): child 'credit_links0 credit_links1' already has
> parent
> Global frequency set at 1000000000 ticks per second
> info: Entering event queue @ 0. Starting simulation...
> system.cpu3: deadlocked at cycle 500015
> fatal:
> @ cycle 500015
> [tick:build/ALPHA_SE_Network_test/cpu/testers/networktest/networktest.cc,
> line 175]
>
>
> The same deadlock situation occurred with hammer protocol at even earlier
> simulation like this:
>
> gem5 Simulator System. http://gem5.org
> gem5 is copyrighted software; use the --copyright option for details.
>
> gem5 compiled May 9 2012 15:54:32
> gem5 started May 9 2012 16:06:42
> gem5 executing on cairo1
> command line: ./build/ALPHA_SE_MOESI_hammer/gem5.debug
> configs/example/ruby_random_test.py --num-cpus=4 --num-dirs=4 --topology=Mesh
> --mesh-rows=2 -l 1000
> Global frequency set at 1000000000 ticks per second
> info: Entering event queue @ 0. Starting simulation...
> fatal: Invalid transition
> system.l1_cntrl0 time: 330144 addr: [0x20c0, line 0x20c0] event: Flush_line
> state: MR
> @ cycle 330144
> [doTransitionWorker:build/ALPHA_SE_MOESI_hammer/mem/protocol/L1Cache_Transitions.cc,
> line 1132]
> Memory Usage: 220192 KBytes
>
> From these trials, I could not successfully run the network simulation even
> though I am able to invoke a garnet object without error in this time. I am
> not sure if this deadlock or invalid transition problem is also caused by
> slightly different development tool version. What would be the real cause of
> the deadlock/invalid transition between simply bad code generation and test
> controller's bug based on wrong protocol? How can I debug it? I would like
> to run the network-only simulation as like being shown in gem5
> document(http://www.m5sim.org/Networktest). Let me hear your comments.
> Thanks.
>
>
> - Juyoung
>
>
> On Tue, May 8, 2012 at 5:08 PM, Tushar Krishna <[email protected]> wrote:
> Yeah it works for me both with and without garnet.
>
> Here are the versions on my machine:
> g++: 4.4.5
> python: 2.6.6
> swig: 1.3.40
> m4: 1.4.14
> gzip: 1.3.12
>
> Start with matching the python and g++ versions as you seem to be getting an
> error when it tries to create a garnet object in configs/ruby/Ruby.py
>
>
> - Tushar
>
>
>
> On May 8, 2012, at 5:31 PM, Juyoung Jung wrote:
>
>> Hi Tushar,
>>
>> Thanks for your quick reply.
>> I was able to run the simulation with ruby_random_test.py +
>> ALPHA_MOESI_hammer protocol without any error. At a glance, I thought the
>> protocol used was a problem. However, after more tests, I found that the
>> simulation failed with option to invoke garnet-network as like:
>> ./build/ALPHA_Network_test/gem5.debug
>> ./configs/example/ruby_network_test.py --num-cpus=4 --num-dirs=4
>> --topology=Mesh --mesh-rows=2 --sim-cycles=1000 --injectionrate=0.01
>> --synthetic=0 --fixed-pkts --maxpackets=1 --garnet-network=fixed
>> Meanwhile, it worked fine if I drop the option "--garnet-nework=fixed" off
>> the command like:
>> ./build/ALPHA_Network_test/gem5.debug
>> ./configs/example/ruby_network_test.py --num-cpus=4 --num-dirs=4
>> --topology=Mesh --mesh-rows=2 --sim-cycles=1000 --injectionrate=0.01
>> --synthetic=0 --fixed-pkts --maxpackets=1
>>
>> Based on this observation, I wonder if you succeed in running a simulation
>> with configs/example/ruby_network_test.py, especially invoking garnet
>> network. I tested the ruby network tester with both g++ 4.3.2 and g++ 4.6.1,
>> and checked with different garnet mode (i.e. flexible) as well. They had the
>> same result "failure" (please see previous email). If you think this is
>> related to c++ version issue, could you tell me which version of c++ you are
>> using on your platform? (including other packages' version such as
>> swig/python/zlib/m4 if possible).
>>
>> Can you give me more comment on this garnet invocation issue?
>> Thanks.
>>
>>
>> - Juyoung
>>
>>
>>
>>
>>
>>
>>
>> On Tue, May 8, 2012 at 12:08 PM, Tushar Krishna <[email protected]> wrote:
>> Hi Juyoung,
>> In future pls send the emails directly on gem5-users so that others who
>> experienced similar problems can help out as well?
>> I am cc:ing gem5-users
>>
>>
>> I just pulled out the latest version of gem5 and ran this exact command and
>> it worked fine.
>> Are you getting this error only with ruby and garnet and this particular
>> protocol?
>>
>> It seems to me that it might be some C++ version issue etc …
>>
>> Can you test it with another protocol too, without garnet.
>> Eg:
>>
>> scons build/ALPHA_MOESI_hammer/gem5.debug
>>
>> ./build/ALPHA_MOESI_hammer/gem5.debug configs/example/ruby_random_test.py
>> --num-cpus=4 --num-dirs=4 --topology=Mesh --mesh-rows=2 -l 1000
>>
>> [The -l command in ruby_random_test specifies the number of cycles to
>> inject].
>>
>> - Tushar
>>
>>
>> On May 8, 2012, at 1:31 PM, Juyoung Jung wrote:
>>
>>> Hi Tushar,
>>>
>>>
>>> I am trying to run Garnet simulator with gem5 following the documentation
>>> found at http://www.gem5.org/Networktest. However, in my case, it failed
>>> to running as it stand, even if other setup conditions have been met. I
>>> tested both the most recent stable and dev gem5, and the same problem
>>> happened. The followings are errors and warnings which I ran into.
>>>
>>>
>>> #> ./build/ALPHA_Network_test/gem5.debug
>>> ./configs/example/ruby_network_test.py --num-cpus=4 --num-dirs=4
>>> --topology=Mesh --mesh-rows=2 --sim-cycles=1000 --injectionrate=0.01
>>> --synthetic=0 --fixed-pkts --maxpackets=1 --garnet-network=fixed
>>>
>>> gem5 Simulator System. http://gem5.org
>>> gem5 is copyrighted software; use the --copyright option for details.
>>>
>>> gem5 compiled May 8 2012 12:20:15
>>> gem5 started May 8 2012 13:15:56
>>> gem5 executing on panther
>>> command line: ./build/ALPHA_Network_test/gem5.debug
>>> ./configs/example/ruby_network_test.py --num-cpus=4 --num-dirs=4
>>> --topology=Mesh --mesh-rows=2 --sim-cycles=1000 --injectionrate=0.01
>>> --synthetic=0 --fixed-pkts --maxpackets=1 --garnet-network=fixed
>>> warning: add_child('cls'): child 'credit_links0 credit_links1' already has
>>> parent
>>> warning: add_child('cls'): child 'credit_links0 credit_links1' already has
>>> parent
>>> warning: add_child('cls'): child 'credit_links0 credit_links1' already has
>>> parent
>>> warning: add_child('cls'): child 'credit_links0 credit_links1' already has
>>> parent
>>> warning: add_child('cls'): child 'credit_links0 credit_links1' already has
>>> parent
>>> warning: add_child('cls'): child 'credit_links0 credit_links1' already has
>>> parent
>>> warning: add_child('cls'): child 'credit_links0 credit_links1' already has
>>> parent
>>> warning: add_child('cls'): child 'credit_links0 credit_links1' already has
>>> parent
>>> warning: add_child('cls'): child 'credit_links0 credit_links1' already has
>>> parent
>>> warning: add_child('cls'): child 'credit_links0 credit_links1' already has
>>> parent
>>> warning: add_child('cls'): child 'credit_links0 credit_links1' already has
>>> parent
>>> warning: add_child('cls'): child 'credit_links0 credit_links1' already has
>>> parent
>>> Global frequency set at 1000000000 ticks per second
>>> Traceback (most recent call last):
>>> File "<string>", line 1, in <module>
>>> File
>>> "/home/juyoung/research/simulators/gem5-dev/gem5/src/python/m5/main.py",
>>> line 357, in main
>>> exec filecode in scope
>>> File "./configs/example/ruby_network_test.py", line 131, in <module>
>>> m5.instantiate()
>>> File
>>> "/home/juyoung/research/simulators/gem5-dev/gem5/src/python/m5/simulate.py",
>>> line 90, in instantiate
>>> for obj in root.descendants(): obj.createCCObject()
>>> File
>>> "/home/juyoung/research/simulators/gem5-dev/gem5/src/python/m5/SimObject.py",
>>> line 1035, in createCCObject
>>> self.getCCParams()
>>> File
>>> "/home/juyoung/research/simulators/gem5-dev/gem5/src/python/m5/SimObject.py",
>>> line 994, in getCCParams
>>> setattr(cc_params, param, value)
>>> SystemError: NULL result without error in PyObject_Call
>>> Segmentation fault
>>>
>>>
>>> I am not sure but it seems to have a problem in setting C++ object's
>>> attribute.
>>> Even if I found some port-related issues posted by Pavan Poluri from old
>>> mailing archive, this problem is likely related to more recent changes in
>>> either Ruby, Garnet, or both.
>>> Could you give me a hint how I can resolve the problem?
>>> Thanks.
>>>
>>>
>>> Regards,
>>>
>>>
>>> Juyoung
>>
>>
>>
>>
>> --
>> ------------------------------------------------------------------------------------
>
>
>
>
> --
> ------------------------------------------------------------------------------------
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users