Re: 2.6.20-rc2+: CFQ halving disk throughput.

Jens Axboe
2007-01-02T15:14:07Z

On Tue, Jan 02 2007, Mark Lord wrote:
> Jens Axboe wrote:
> >On Tue, Jan 02 2007, Jens Axboe wrote:
> >>On Tue, Jan 02 2007, Rene Herman wrote:
> >>>Jens Axboe wrote:
> >>>
> >>>>On Mon, Jan 01 2007, Andrew Morton wrote:
> >>>>>The patch would appear to need this fix:
> >>>>>
> >>>>>--- a/block/cfq-iosched.c~a
> >>>>>+++ a/block/cfq-iosched.c
> >>>>>@@ -592,7 +592,7 @@ static int cfq_allow_merge(request_queue
> >>>>> if (cfqq == RQ_CFQQ(rq))
> >>>>> return 1;
> >>>>>
> >>>>>- return 1;
> >>>>>+ return 0;
> >>>>>}
> >>>>>
> >>>>>static inline void
> >>>>>_
> >>>>>
> >>>>>But that might not fix things...
> >>>>Yeah it is, but I don't think it'll fix it (if anything, it'll be more
> >>>>conservative).
> >>>(to possibly save others from trying -- no, doesn't fix any)
> >>As expected. The issue is rq_is_sync(rq) takes the data direction into
> >>account as well, while bio_sync() only checks the sync bit. This should
> >>fix it.
> >
> >And here a little more relaxed version, as Mark Lord suggested. We allow
> >merge of async bio into a sync request, but not vice versa.
> >
> >Both patches pending testing, will do so now.
>
> Performance is right back where it should be now, thanks!

Good, thanks!

> I did have to massage the second patch to get it to apply cleanly
> after the first patch. You may want to regenerate it against -rc3.

Hmm odd, I thought I did. Will double check.

--
Jens Axboe