summaryrefslogtreecommitdiff
path: root/src/mem/ruby/slicc_interface/Controller.py
diff options
context:
space:
mode:
authorTiago Muck <tiago.muck@arm.com>2019-02-25 16:20:32 -0600
committerTiago Mück <tiago.muck@arm.com>2019-05-14 22:01:12 +0000
commit42e55cdafdac41830839ac2584d99a8dd5e3d95e (patch)
tree0c9b4e7e33eef0c731be478b43424c266e36c2d1 /src/mem/ruby/slicc_interface/Controller.py
parent575ac7a14a5f5f242f903949219dbdc310747915 (diff)
downloadgem5-42e55cdafdac41830839ac2584d99a8dd5e3d95e.tar.xz
mem-ruby: Do not change blocked msg enqueue info
Updating the message counter and enqueue times when adding blocked messages back to the queue does not make a lot of sense since these messages are not new arrivals. More importantly, this may lead to starvation. See the scenario below: 1) Request A for a blocked line X arrives 2) A is handled; X is blocked so A is stalled 3) Request B for X arrives; Reponse for X arrives 4) Response is handled; X unblocked; A added back to the request queue 5) B is handled ahead of A (since A's arrival was updated); X may become blocked again If new requests keep comming for X, A may will be stalled forever. Change-Id: Icad79f3f716a870e91cb3455437b8b3c35f130ac Signed-off-by: Tiago Muck <tiago.muck@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/18412 Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Matthew Poremba <matthew.poremba@amd.com> Maintainer: Jason Lowe-Power <jason@lowepower.com>
Diffstat (limited to 'src/mem/ruby/slicc_interface/Controller.py')
0 files changed, 0 insertions, 0 deletions