| Date | Wed, 4 Nov 2009 14:17:09 -0500 | From | Vivek Goyal <> | Subject | Re: [PATCH 18/20] blkio: arm idle timer even if think time is great then time slice left |
| |
On Wed, Nov 04, 2009 at 02:04:45PM -0500, Jeff Moyer wrote: > Vivek Goyal <vgoyal@redhat.com> writes: > > > o Now we plan to wait for a queue to get backlogged before we expire it. So > > we need to arm slice timer even if think time is greater than slice left. > > if process sends next IO early and time slice is left, we will dispatch it > > otherwise we will expire the queue and move on to next queue. > > Should this be rolled into patch 17? I'm just worried about breaking > bisection runs. What happens if this patch isn't applied? >
We don't wait for queue to get busy and expire it. That means we will not get fairness numbers between groups even in simple case of sequential readers.
So nothing catastrophic. Bisection will not be broken as such (kernel compiles and boots).
In fact thinking more about it, I might have broken close cooperator logic as I am waiting for queue to get busy irrespective of the fact whether there is a close cooperating queue or not. I think need to check for cooperating queue in cfqq_should_wait_busy() and if one is available, don't busy wait. This should still maintain fairness at group level as cooperating queues are not selected across groups and if one cooperating queue is available in same group, that means expiry of this current queue will not delete group from service tree and group will still get fair share.
Thanks Vivek
|