Renash
Newbie
Hi all,
How do you design a case, where one request is not showing up at all, even after the other requests completed their credits. Thus, all the counters don't reach the replenish state until that request shows up. Meantime, you might be starving other requests which are active and completed their credits in the sequence.
Imagine, we are talking about huge numbers, let's say 3 GHz bandwidth available. Request A should be assigned 2 GHz, and Request B should be assigned only 1 GHz. Only B is being actively requesting, and A just stopped requesting. How long would we starve request B, waiting for request A? How do we overcome this problem in the design?
One solution that I can think: Implement multiple counters for each request to keep track to 1 Gigs credits. Which means we are not bringing down the weights ratio to 2 : 1, but instead doing 2G : 1G.
Any other ideas on this?
Thanks.
How do you design a case, where one request is not showing up at all, even after the other requests completed their credits. Thus, all the counters don't reach the replenish state until that request shows up. Meantime, you might be starving other requests which are active and completed their credits in the sequence.
Imagine, we are talking about huge numbers, let's say 3 GHz bandwidth available. Request A should be assigned 2 GHz, and Request B should be assigned only 1 GHz. Only B is being actively requesting, and A just stopped requesting. How long would we starve request B, waiting for request A? How do we overcome this problem in the design?
One solution that I can think: Implement multiple counters for each request to keep track to 1 Gigs credits. Which means we are not bringing down the weights ratio to 2 : 1, but instead doing 2G : 1G.
Any other ideas on this?
Thanks.