lkml.org 
[lkml]   [2009]   [Nov]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH 19/20] blkio: Arm slice timer even if there are requests in driver
Date
o To ensure fairness for a group, we need to make sure at the time of expiry
queue is backlogged and does not get deleted from the service tree. That
means for sequential workload, wait for next request before expiry.

o Sometimes we dispatch a request from a queue and we do not wait busy on the
queue because arm_slice_timer() does not arm slice idle timer because it
thinks there are requests in driver. Further down in select_cfq_queue()
we expire the cfqq because time slice expired and queue looses its share
(vtime jump). Hence idle timer even if there are requests in the driver.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
---
block/cfq-iosched.c | 6 ------
1 files changed, 0 insertions(+), 6 deletions(-)
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index 963659a..d609a10 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -1690,12 +1690,6 @@ static bool cfq_arm_slice_timer(struct cfq_data *cfqd, int reset)
return false;

/*
- * still requests with the driver, don't idle
- */
- if (rq_in_driver(cfqd))
- return false;
-
- /*
* task has exited, don't wait
*/
cic = cfqd->active_cic;
--
1.6.2.5


\
 
 \ /
  Last update: 2009-11-04 00:49    [from the cache]
©2003-2011 Jasper Spaans