Re: [gem5-dev] Review Request 3711: ruby: Detect garnet network-level deadlock.
--- This is an automatically generated e-mail. To reply, visit: http://reviews.gem5.org/r/3711/#review9180 --- Ship it! Ship It! - Tushar Krishna On Dec. 1, 2016, 11:37 p.m., Jieming Yin wrote: > > --- > This is an automatically generated e-mail. To reply, visit: > http://reviews.gem5.org/r/3711/ > --- > > (Updated Dec. 1, 2016, 11:37 p.m.) > > > Review request for Default. > > > Repository: gem5 > > > Description > --- > > Changeset 11706:c2eb8893beb5 > --- > ruby: Detect garnet network-level deadlock. > > This patch detects garnet network deadlock by monitoring > network interfaces. If a network interface continuously > fails to allocate virtual channels for a message, a > possible deadlock is detected. > > > Diffs > - > > src/mem/ruby/network/garnet2.0/NetworkInterface.hh > c38fcdaa5fe508dbb18cc084e758ad0ce8e2e2f4 > src/mem/ruby/network/garnet2.0/NetworkInterface.cc > c38fcdaa5fe508dbb18cc084e758ad0ce8e2e2f4 > configs/network/Network.py c38fcdaa5fe508dbb18cc084e758ad0ce8e2e2f4 > src/mem/ruby/network/garnet2.0/GarnetNetwork.py > c38fcdaa5fe508dbb18cc084e758ad0ce8e2e2f4 > > Diff: http://reviews.gem5.org/r/3711/diff/ > > > Testing > --- > > > Thanks, > > Jieming Yin > > ___ gem5-dev mailing list gem5-dev@gem5.org http://m5sim.org/mailman/listinfo/gem5-dev
Re: [gem5-dev] Review Request 3747: ruby: Remove RubyMemoryControl and associated files
--- This is an automatically generated e-mail. To reply, visit: http://reviews.gem5.org/r/3747/#review9179 --- Ship it! With this patch I believe we could also remove MemCntrlProfiler.cc/hh as well. - Matthew Poremba On Nov. 30, 2016, 4:48 p.m., Andreas Hansson wrote: > > --- > This is an automatically generated e-mail. To reply, visit: > http://reviews.gem5.org/r/3747/ > --- > > (Updated Nov. 30, 2016, 4:48 p.m.) > > > Review request for Default. > > > Repository: gem5 > > > Description > --- > > Changeset 11721:60b44b57fecb > --- > ruby: Remove RubyMemoryControl and associated files > > This patch removes the deprecated RubyMemoryControl. The DRAMCtrl > module should be used instead. > > > Diffs > - > > src/mem/ruby/structures/RubyMemoryControl.py 482900205561 > src/mem/ruby/structures/SConscript 482900205561 > src/mem/ruby/structures/RubyMemoryControl.hh 482900205561 > src/mem/ruby/structures/RubyMemoryControl.cc 482900205561 > src/mem/ruby/structures/MemoryNode.hh 482900205561 > src/mem/ruby/structures/MemoryNode.cc 482900205561 > src/mem/ruby/SConscript 482900205561 > > Diff: http://reviews.gem5.org/r/3747/diff/ > > > Testing > --- > > > Thanks, > > Andreas Hansson > > ___ gem5-dev mailing list gem5-dev@gem5.org http://m5sim.org/mailman/listinfo/gem5-dev
Re: [gem5-dev] Memory model patches for review
Hi Everyone, The following patches have been on the RB for almost two weeks and we are planning on pushing them early next week. Please let me know if there are any objections or if someone needs more time. Read Response with invalidate fix: 1) #3724 - mem: Add support for repopulating the flags of an MSHR TargetList 2) #3725 - mem: Keep track of allocOnFill in the TargetList 3) #3726 - mem: Service only the 1st FromCPU MSHR target on ReadRespWithInv 4) #3727 - cpu: Change traffic generators to use different values for writes Invalidatation fix: 1) #3728 - mem: Make packet debug printing more uniform 2) #3729 - mem: Ensure InvalidateReq is considered isForward by MSHRs 3) #3730 - mem: Assert that the responderHadWritable is set only once 4) #3731 - mem: Always use InvalidateReq to service WriteLineReq misses 5) #3732 - mem: Don't use hasSharers in the snoopFilter for memory responses 6) #3733 - mem: Allow non invalidating snoops on an InvalidateReq MSHR 7) #3734 - mem: Invalidate a blk when servicing the 1st invalidating target 8) #3735 - mem: Respond to InvalidateReq when the block is (pending) dirty 9) #3736 - config: Add whole line accesses to improve memchecker's coverage) 10) #3737 - config: Add an option to generate a random topology in memcheck Thanks, Nikos From: Nikos Nikoleris Sent: 18 November 2016 17:20:57 To: Default Subject: Memory model patches for review Fellow gem5 developers, I have just posted a number of patches on the reviewboard that address two issues with the memory model of the classic memory system. This is a short description of the context for these patches to help out with any reviews. The first set of patches deals with memory ordering issues when two consecutive read requests miss in the cache and the downstream cache receives an invalidating snoop request in between. Currently the cache would service both read requests with the same response despite the fact that the ordering point (the downstream cache) received an invalidating snoop between the two requests. The following patches address this issue by deferring the second read request when a read response with invalidate is received. The issue can be reproduced using the memchecker after #3727 has been applied. 1) #3724 - mem: Add support for repopulating the flags of an MSHR TargetList 2) #3725 - mem: Keep track of allocOnFill in the TargetList 3) #3726 - mem: Service only the 1st FromCPU MSHR target on ReadRespWithInv 4) #3727 - cpu: Change traffic generators to use different values for writes The second set of patches deals with memory ordering issues in the presence of whole line writes. In the classic memory system, whole line requests that miss send out invalidations requests to every cache down to the point of coherency. The point of coherency (xbar) always responds to the invalidation request after it has sent snoops to all upstream caches. This creates problems as there is no ordering point and write line requests get serviced in an arbitrary order. This series of patches makes the cache with the (pending) dirty copy, or otherwise the point of coherency (xbar) the ordering point which responds the to the invalidation request. This way invalidation requests are handled in the same way as upgrade requests. The whole line memory order issue can be reproduced by the memchecker after #3726 has been applied. 1) #3728 - mem: Make packet debug printing more uniform 2) #3729 - mem: Ensure InvalidateReq is considered isForward by MSHRs 3) #3730 - mem: Assert that the responderHadWritable is set only once 4) #3731 - mem: Always use InvalidateReq to service WriteLineReq misses 5) #3732 - mem: Don't use hasSharers in the snoopFilter for memory responses 6) #3733 - mem: Allow non invalidating snoops on an InvalidateReq MSHR 7) #3734 - mem: Invalidate a blk when servicing the 1st invalidating target 8) #3735 - mem: Respond to InvalidateReq when the block is (pending) dirty 9) #3736 - config: Add whole line accesses to improve memchecker's coverage) 10) #3737 - config: Add an option to generate a random topology in memcheck Thanks, Nikos IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you. ___ gem5-dev mailing list gem5-dev@gem5.org http://m5sim.org/mailman/listinfo/gem5-dev
[gem5-dev] Cron <m5test@zizzer> /z/m5/regression/do-regression quick
* build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64m/o3-timing: FAILED! * build/RISCV/tests/opt/quick/se/00.hello/riscv/linux/simple-timing-ruby: FAILED! * build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64f/o3-timing: FAILED! * build/RISCV/tests/opt/quick/se/00.hello/riscv/linux/o3-timing: FAILED! * build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64a/simple-atomic: FAILED! * build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64f/simple-timing: FAILED!*** diff[config.ini]: SKIPPED * build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64f/minor-timing: FAILED! * build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64d/simple-timing-ruby: FAILED! * build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64a/minor-timing: FAILED! * build/RISCV/tests/opt/quick/se/00.hello/riscv/linux/minor-timing: FAILED! * build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64i/minor-timing: FAILED! * build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64m/simple-timing: FAILED! * build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64f/simple-timing-ruby: FAILED! * build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64a/simple-timing-ruby: FAILED! * build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64m/minor-timing: FAILED! * build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64i/simple-timing: FAILED! * build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64f/simple-atomic: FAILED! * build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64d/simple-atomic: FAILED! * build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64m/simple-timing-ruby: FAILED!*** diff[config.json]: SKIPPED * build/RISCV/tests/opt/quick/se/00.hello/riscv/linux/simple-timing: FAILED! * build/RISCV/tests/opt/quick/se/00.hello/riscv/linux/simple-atomic: FAILED!* build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64i/simple-atomic: FAILED! *** diff[config.json]: SKIPPED* build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64d/minor-timing: FAILED! * build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64m/simple-atomic: FAILED! * build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64i/simple-timing-ruby: FAILED!*** gem5 stdout *** * build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64a/simple-timing: FAILED! * build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64d/simple-timing: FAILED! * build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/simple-timing: passed. * build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/o3-timing: passed.* build/ALPHA/tests/opt/quick/se/03.learning-gem5/alpha/linux/learning-gem5-p1-two-level: passed. * build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/minor-timing: passed. * build/ALPHA/tests/opt/quick/se/03.learning-gem5/alpha/linux/learning-gem5-p1-simple: passed. * build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/simple-timing-ruby: passed. * build/ALPHA/tests/opt/quick/se/01.hello-2T-smt/alpha/linux/o3-timing-mt: passed. * build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/simple-atomic: passed. * build/ALPHA/tests/opt/quick/fs/10.linux-boot/alpha/linux/tsunami-simple-atomic: passed. * build/ALPHA/tests/opt/quick/fs/10.linux-boot/alpha/linux/tsunami-simple-atomic-dual: passed. * build/ALPHA/tests/opt/quick/fs/10.linux-boot/alpha/linux/tsunami-simple-timing: passed. * build/ALPHA/tests/opt/quick/se/50.memtest/alpha/linux/memtest-ruby: passed. * build/ALPHA/tests/opt/quick/fs/10.linux-boot/alpha/linux/tsunami-simple-timing-dual: passed. * build/MIPS/tests/opt/quick/se/03.learning-gem5/mips/linux/learning-gem5-p1-two-level: passed. * build/MIPS/tests/opt/quick/se/00.hello/mips/linux/simple-atomic: passed. * build/MIPS/tests/opt/quick/se/00.hello/mips/linux/o3-timing: passed. * build/MIPS/tests/opt/quick/se/00.hello/mips/linux/simple-timing: passed. * build/MIPS/tests/opt/quick/se/03.learning-gem5/mips/linux/learning-gem5-p1-simple: passed. * build/MIPS/tests/opt/quick/se/00.hello/mips/linux/simple-timing-ruby: passed. * build/NULL/tests/opt/quick/se/60.rubytest/null/none/rubytest-ruby: passed. * build/NULL/tests/opt/quick/se/70.tgen/null/none/tgen-simple-mem: passed. * build/NULL/tests/opt/quick/se/50.memtest/null/none/memtest-filter: passed. * build/NULL/tests/opt/quick/se/50.memtest/null/none/memtest: passed. * build/NULL/tests/opt/quick/se/70.tgen/null/none/tgen-dram-ctrl: passed. * build/NULL/tests/opt/quick/se/51.memcheck/null/none/memcheck: passed. * build/NULL_MOESI_hammer/tests/opt/quick/se/60.rubytest/null/none/rubytest-ruby-MOESI_hammer: passed. * build/NULL_MESI_Two_Level/tests/opt/quick/se/60.rubytest/null/none/rubytest-ruby-MESI_Two_Level: passed. *