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

Jens Axboe
2007-01-02T08:34:18Z

On Mon, Jan 01 2007, Mark Lord wrote:
> Rene Herman wrote:
> >Tejun Heo wrote:
> >
> >>Everything seems fine in the dmesg. Performance degradation is
> >>probably some other issue in -rc kernel. I'm suspecting recently
> >>fixed block layer bug. If it's still the same in the next -rc,
> >>please report.
> >
> >In fact, it's CFQ. The PATA thing was a red herring. 2.6.20-rc2 and 3
> >give me ~ 24 MB/s from "hdparm t /dev/hda" while 2.6.20-rc1 and below
> >give me ~ 50 MB/s.
> >
> >Jens: this is due to "[PATCH] cfq-iosched: tighten allow merge
> >criteria", 719d34027e1a186e46a3952e8a24bf91ecc33837:
> >
> >http://www2.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=719d34027e1a186e46a3952e8a24bf91ecc33837
> >
> >
> >If I revert that one, I have my 50 M/s back. config and dmesg attached
> >in case they're useful.
>
> Wow.. same deal here -- sequential throughput drops from 40MB/sec to
> 28MB/sec
> with CFQ -- whereas the anticipatory scheduler maintains the 40MB/sec.
>
> Jens.. I wonder if the new merging test is a bit too strict?
>
> There are four possible combinations, and the new code
> allows merging for two of them: sync+sync and async+async.
>
> But surely one of (not sure which) sync+async or async+sync may also be
> okay?
> Or would it?

Async merge to sync request should be ok. But I wonder what happens with
hdparm, since it seems to trigger one of these tests. Very puzzling.
I'll dive in and take a look.

> This is a huge performance hit.

Indeed, not acceptable of course. And not intentional :-)

--
Jens Axboe