I found the bug and fixed it. [Basically by default garnet should use the routing table, the src_outport and dst_inport names are for supporting special routing algorithms that the user may want to implement. The default routing algo was set to the user-specified one in the config file]. Thanks Zicong!
On Sep 24, 2016, at 12:11 PM, Zicong Wang <wangzic...@nudt.edu.cn<mailto:wangzic...@nudt.edu.cn>> wrote: This is an automatically generated e-mail. To reply, visit: http://reviews.gem5.org/r/3558/ On 九月 23rd, 2016, 1:47 p.m. CST, Zicong Wang wrote: Missing src_outport & dst_inport when create the mesh links in MeshDirCorners_XY.py, which will cause segmentation fault(tested in X86_MESI_Two_Level) On 九月 23rd, 2016, 11:58 p.m. CST, Tushar Krishna wrote: Hi Zicong, Thanks for testing the patch on your end. Can you send me the command you used that gave you the segmentation fault? src_outport and dst_inport are supposed to be optional parameters. I can add them in to MeshDirCorners_XY but want to find out why they gave an error. Thanks, Tushar Hi, Tushar, Thanks for your working garnet2.0, and the network becomes easier to use for researching. The command I used is showed as below: ./build/X86_MESI_Two_Level/gem5.debug \ configs/example/se.py \ --cmd=tests/test-progs/hello/bin/x86/linux/hello \ --cpu-type=detailed --ruby --num-cpus=16 \ --caches --cacheline_size=128 \ --l1i_size=16kB --l1i_assoc=2 \ --l1d_size=16kB --l1d_assoc=2 \ --l2cache --l2_size=128kB --l2_assoc=4 --num-l2caches=16 \ --topology=MeshDirCorners_XY --mesh-rows=4 \ --num-dirs=4 --mem-size=4GB \ --sys-clock=1GHz --ruby-clock=1GHz --cpu-clock=1GHz \ --maxinsts=10000 \ --network=garnet2.0 |tee m5out/runscript.log I test it on a latest changeset(fd783bff017c) which patched with rb35{49,50,54,55,56,57,58}.patch. In addition, I got the same segmentation fault running on my own gem5 project(based on a changeset several month before released). I checked the core file and found out nullptr at NetworkInterface.cc<http://networkinterface.cc>:178 caused the breakdown(a packet injected to vnet 0 incorrectly enqueued at NI 0). What's more, It works well in X86_MESI_Two_Level(Mesh_XY) and Garnet_standalone. When I add src_outport & dst_inport into MeshDirCorners_XY, it works as well as Mesh_XY. I hope the information are useful to your working. Zicong - Zicong On 八月 24th, 2016, 11:24 p.m. CST, Tushar Krishna wrote: Review request for Default, Andreas Hansson, Brad Beckmann, Jieming Yin, and Matthew Poremba. By Tushar Krishna. Updated 八月 24, 2016, 11:24 p.m. Repository: gem5 Description ruby: garnet2.0 Revamped version of garnet with more optimized single-cycle routers, more configurability, and cleaner code. Diffs * src/mem/ruby/network/garnet2.0/GarnetLink.py (PRE-CREATION) * src/mem/ruby/network/garnet2.0/GarnetNetwork.hh (PRE-CREATION) * src/mem/ruby/network/garnet2.0/GarnetNetwork.cc<http://garnetnetwork.cc> (PRE-CREATION) * configs/topologies/Crossbar.py (d726d0cea027) * configs/topologies/MeshDirCorners_XY.py (PRE-CREATION) * configs/topologies/Mesh_XY.py (PRE-CREATION) * configs/topologies/Mesh_westfirst.py (PRE-CREATION) * configs/topologies/Pt2Pt.py (d726d0cea027) * src/base/statistics.cc<http://statistics.cc> (d726d0cea027) * src/mem/ruby/network/BasicRouter.py (d726d0cea027) * src/mem/ruby/network/garnet2.0/CommonTypes.hh (PRE-CREATION) * src/mem/ruby/network/garnet2.0/Credit.hh (PRE-CREATION) * src/mem/ruby/network/garnet2.0/Credit.cc<http://credit.cc> (PRE-CREATION) * src/mem/ruby/network/garnet2.0/CreditLink.hh (PRE-CREATION) * src/mem/ruby/network/garnet2.0/CrossbarSwitch.hh (PRE-CREATION) * src/mem/ruby/network/garnet2.0/CrossbarSwitch.cc<http://crossbarswitch.cc> (PRE-CREATION) * src/mem/ruby/network/garnet2.0/GarnetLink.hh (PRE-CREATION) * src/mem/ruby/network/garnet2.0/GarnetLink.cc<http://garnetlink.cc> (PRE-CREATION) * configs/network/Network.py (PRE-CREATION) * src/mem/ruby/network/garnet2.0/Router.cc<http://router.cc> (PRE-CREATION) * src/mem/ruby/network/garnet2.0/RoutingUnit.hh (PRE-CREATION) * src/mem/ruby/network/garnet2.0/RoutingUnit.cc<http://routingunit.cc> (PRE-CREATION) * src/mem/ruby/network/garnet2.0/SConscript (PRE-CREATION) * src/mem/ruby/network/garnet2.0/SwitchAllocator.hh (PRE-CREATION) * src/mem/ruby/network/garnet2.0/SwitchAllocator.cc<http://switchallocator.cc> (PRE-CREATION) * src/mem/ruby/network/garnet2.0/VirtualChannel.hh (PRE-CREATION) * src/mem/ruby/network/garnet2.0/VirtualChannel.cc<http://virtualchannel.cc> (PRE-CREATION) * src/mem/ruby/network/garnet2.0/flit.hh (PRE-CREATION) * src/mem/ruby/network/garnet2.0/flit.cc<http://flit.cc> (PRE-CREATION) * src/mem/ruby/network/garnet2.0/flitBuffer.hh (PRE-CREATION) * src/mem/ruby/network/garnet2.0/flitBuffer.cc<http://flitbuffer.cc> (PRE-CREATION) * src/mem/ruby/network/garnet2.0/OutputUnit.hh (PRE-CREATION) * src/mem/ruby/network/garnet2.0/OutputUnit.cc<http://outputunit.cc> (PRE-CREATION) * src/mem/ruby/network/garnet2.0/README.txt (PRE-CREATION) * src/mem/ruby/network/garnet2.0/Router.hh (PRE-CREATION) * src/mem/ruby/network/garnet2.0/NetworkLink.cc<http://networklink.cc> (PRE-CREATION) * src/mem/ruby/network/garnet2.0/OutVcState.hh (PRE-CREATION) * src/mem/ruby/network/garnet2.0/OutVcState.cc<http://outvcstate.cc> (PRE-CREATION) * src/mem/ruby/network/garnet2.0/NetworkLink.hh (PRE-CREATION) * src/mem/ruby/network/garnet2.0/GarnetNetwork.py (PRE-CREATION) * src/mem/ruby/network/garnet2.0/InputUnit.hh (PRE-CREATION) * src/mem/ruby/network/garnet2.0/InputUnit.cc<http://inputunit.cc> (PRE-CREATION) * src/mem/ruby/network/garnet2.0/NetworkInterface.hh (PRE-CREATION) * src/mem/ruby/network/garnet2.0/NetworkInterface.cc<http://networkinterface.cc> (PRE-CREATION) View Diff<http://reviews.gem5.org/r/3558/diff/> _______________________________________________ gem5-dev mailing list gem5-dev@gem5.org http://m5sim.org/mailman/listinfo/gem5-dev