Messages in this thread Patch in this message | | | Subject | Re: Do not overload dispatch queue (Was: Re: IO scheduler based IO controller V10) | From | Mike Galbraith <> | Date | Sun, 04 Oct 2009 13:33:33 +0200 |
| |
Wrong one. Let's try the post java version instead.
8e29675: "implement slower async initiate and queue ramp up" introduced a throughput regression for concurrent reader vs writer. Adjusting async delay to use cfq_slice_async restored throughput.
Signed-off-by: Mike Galbraith <efault@gmx.de>
--- block/cfq-iosched.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
Index: linux-2.6/block/cfq-iosched.c =================================================================== --- linux-2.6.orig/block/cfq-iosched.c +++ linux-2.6/block/cfq-iosched.c @@ -1343,17 +1343,18 @@ static int cfq_dispatch_requests(struct */ if (!cfq_cfqq_sync(cfqq) && cfqd->cfq_desktop) { unsigned long last_sync = jiffies - cfqd->last_end_sync_rq; + unsigned long slice = cfq_slice_async; unsigned int depth; /* * must wait a bit longer */ - if (last_sync < cfq_slice_sync) { - cfq_schedule_dispatch(cfqd, cfq_slice_sync - last_sync); + if (last_sync < slice) { + cfq_schedule_dispatch(cfqd, slice - last_sync); return 0; } - depth = last_sync / cfq_slice_sync; + depth = last_sync / slice; if (depth < max_dispatch) max_dispatch = depth; }
| |