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

Reply via email to