Re: [gem5-dev] Review Request 3711: ruby: Detect garnet network-level deadlock.

2016-12-01 Thread Tushar Krishna

---
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

2016-12-01 Thread Matthew Poremba

---
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

2016-12-01 Thread Nikos Nikoleris
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

2016-12-01 Thread Cron Daemon
* 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.
*