From: Nick Piggin <piggin@cyberone.com.au>
To: rwhron@earthlink.net
Cc: venom@sns.it, linux-kernel@vger.kernel.org, dmo@osdl.org, akpm@osdl.org
Subject: Re: [BENCHMARK] I/O regression after 2.6.0-test5
Date: Wed, 22 Oct 2003 19:54:46 +1000 [thread overview]
Message-ID: <3F9653E6.4060209@cyberone.com.au> (raw)
In-Reply-To: <20031021130501.GA4409@rushmore>
[-- Attachment #1: Type: text/plain, Size: 591 bytes --]
rwhron@earthlink.net wrote:
>>If you have time, would you please try testing as-iosched.c from
>>test5 in a later kernel (it won't go into test8-mm1 though).
>>
>
>copying drivers/block/as-iosched.c from 2.6.0-test5 to test8
>looks like it fixes the regression. Here are the results so far.
>
Could you please try the following patch against 2.6.0-test8.
Thanks. I'll have to come up with something more comprehensive
because this destroys find | xargs grep during other IO. It
looks like this might be the cause of a lot of AS's database
problems though.
I'm working on something...
[-- Attachment #2: as-fix.patch --]
[-- Type: text/plain, Size: 2416 bytes --]
linux-2.6-npiggin/drivers/block/as-iosched.c | 23 +++--------------------
1 files changed, 3 insertions(+), 20 deletions(-)
diff -puN drivers/block/as-iosched.c~as-fix drivers/block/as-iosched.c
--- linux-2.6/drivers/block/as-iosched.c~as-fix 2003-10-22 19:47:48.000000000 +1000
+++ linux-2.6-npiggin/drivers/block/as-iosched.c 2003-10-22 19:49:41.000000000 +1000
@@ -99,7 +99,6 @@ struct as_data {
sector_t last_sector[2]; /* last REQ_SYNC & REQ_ASYNC sectors */
struct list_head *dispatch; /* driver dispatch queue */
struct list_head *hash; /* request hash */
- unsigned long new_success; /* anticipation success on new proc */
unsigned long current_batch_expires;
unsigned long last_check_fifo[2];
int changed_batch; /* 1: waiting for old batch to end */
@@ -585,18 +584,11 @@ static void as_antic_stop(struct as_data
int status = ad->antic_status;
if (status == ANTIC_WAIT_REQ || status == ANTIC_WAIT_NEXT) {
- struct as_io_context *aic;
-
if (status == ANTIC_WAIT_NEXT)
del_timer(&ad->antic_timer);
ad->antic_status = ANTIC_FINISHED;
/* see as_work_handler */
kblockd_schedule_work(&ad->antic_work);
-
- aic = ad->io_context->aic;
- if (aic->seek_samples == 0)
- /* new process */
- ad->new_success = (ad->new_success * 3) / 4 + 256;
}
}
@@ -612,14 +604,8 @@ static void as_antic_timeout(unsigned lo
spin_lock_irqsave(q->queue_lock, flags);
if (ad->antic_status == ANTIC_WAIT_REQ
|| ad->antic_status == ANTIC_WAIT_NEXT) {
- struct as_io_context *aic;
ad->antic_status = ANTIC_FINISHED;
kblockd_schedule_work(&ad->antic_work);
-
- aic = ad->io_context->aic;
- if (aic->seek_samples == 0)
- /* new process */
- ad->new_success = (ad->new_success * 3) / 4;
}
spin_unlock_irqrestore(q->queue_lock, flags);
}
@@ -708,11 +694,10 @@ static int as_can_break_anticipation(str
return 1;
}
- if (ad->new_success < 256 &&
- (aic->seek_samples == 0 || aic->ttime_samples == 0)) {
+ if (aic->seek_samples == 0 && aic->ttime_samples == 0) {
/*
- * Process has just started IO and we have a bad history of
- * success anticipating on new processes!
+ * Process has just started IO. Don't anticipate.
+ * TODO! Must fix this up.
*/
return 1;
}
@@ -1822,8 +1807,6 @@ static int as_init(request_queue_t *q, e
if (ad->write_batch_count < 2)
ad->write_batch_count = 2;
- ad->new_success = 512;
-
return 0;
}
_
next prev parent reply other threads:[~2003-10-22 9:54 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-10-21 13:05 [BENCHMARK] I/O regression after 2.6.0-test5 rwhron
2003-10-21 15:57 ` Nick Piggin
2003-10-21 21:07 ` venom
2003-10-22 9:54 ` Nick Piggin [this message]
2003-10-22 18:30 ` Dave Olien
2003-10-22 19:08 ` Dave Olien
2003-10-23 2:24 ` Nick Piggin
2003-10-23 3:48 ` Nick Piggin
2003-10-23 20:35 ` Dave Olien
2003-10-23 23:07 ` Nick Piggin
-- strict thread matches above, loose matches on Subject: below --
2003-10-29 0:38 rwhron
2003-10-27 23:33 John Hawkes
2003-10-26 10:38 rwhron
2003-10-27 23:49 ` Dave Olien
2003-10-24 23:43 rwhron
2003-10-24 12:46 rwhron
2003-10-24 0:10 rwhron
2003-10-20 0:37 rwhron
2003-10-20 1:35 ` Nick Piggin
2003-10-20 4:52 ` Andrew Morton
2003-10-20 8:12 ` Nick Piggin
2003-10-20 4:51 ` Dave Olien
2003-10-20 7:55 ` venom
2003-10-21 4:49 ` Nick Piggin
2003-10-24 13:52 ` Magnus Andersson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3F9653E6.4060209@cyberone.com.au \
--to=piggin@cyberone.com.au \
--cc=akpm@osdl.org \
--cc=dmo@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rwhron@earthlink.net \
--cc=venom@sns.it \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.