[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
[dm-devel] Re: Do not overload dispatch queue (Was: Re: IO scheduler based IO controller V10)
- From: Mike Galbraith <efault gmx de>
- To: Jens Axboe <jens axboe oracle com>
- Cc: dhaval linux vnet ibm com, peterz infradead org, dm-devel redhat com, dpshah google com, agk redhat com, balbir linux vnet ibm com, paolo valente unimore it, jmarchan redhat com, fernando oss ntt co jp, Ulrich Lukas <stellplatz-nr 13a datenparkplatz de>, mikew google com, jmoyer redhat com, nauman google com, Ingo Molnar <mingo elte hu>, Vivek Goyal <vgoyal redhat com>, m-ikeda ds jp nec com, riel redhat com, lizf cn fujitsu com, fchecconi gmail com, containers lists linux-foundation org, linux-kernel vger kernel org, akpm linux-foundation org, righi andrea gmail com, Linus Torvalds <torvalds linux-foundation org>
- Subject: [dm-devel] Re: Do not overload dispatch queue (Was: Re: IO scheduler based IO controller V10)
- 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;
}
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]