Review Board 2.0.15


imported patch rr_arbiter_fix

Review Request #3809 - Created Feb. 11, 2017 and updated

Information
Tushar Krishna
gem5
default
Reviewers
Default
bbeckman, jyin, mporemba, okayiran

ruby: fix round robin arbiter in garnet2.0
The rr arbiter pointer in garnet was getting updated on every request,
even if there is no grant. This was leading to a huge variance in wait
time at a router at high injection rates.
This patch corrects it to update upon a grant.


   
Ship it!
Posted (Feb. 11, 2017, 8:50 p.m.)

We also observed long packet delay in heavy-traffic workloads. Just curious, how much does this fix improve?

  1. I noticed the problem when the deadlock threshold that was added recently started getting triggered at very high injection rates (post-saturation) with the synthetic network traffic.
    It seemed odd to me that a NI could not inject for 10000 cycles, however congested the network may be, as round-robin should ensure that eventually every VC at every input port should get a chance to leave the router (in the absence of a true deadlock).

    I didn't measure how the overall stats change now, but the deadlock counter does not trigger now even if I (try to) inject 1-flit every cycle showing that this fix works.

Ship it!
Posted (Feb. 12, 2017, 11:55 a.m.)
Ship It!
Ship it!
Posted (Feb. 13, 2017, 9:38 a.m.)
Ship It!