Re: [GIT PULL] Ext3 latency fixes

Jens Axboe
2009-04-06T08:12:44Z

On Sat, Apr 04 2009, Theodore Tso wrote:
> On Sat, Apr 04, 2009 at 05:16:50PM +0200, Jens Axboe wrote:
> > Big nack on this patch. Ted, this is EXACTLY where I told you we saw big
> > write regressions (sqlite performance drops by a factor of 4-5). Do a
> > git log on fs/buffer.c and see the original patch (which does what your
> > patch does) and the later revert.
>
> You mean this revert, right?
>
> commit 78f707bfc723552e8309b7c38a8d0cc51012e813
> Author: Jens Axboe <jens.axboe@oracle.com>
> Date: Tue Feb 17 13:59:08 2009 +0100
>
> block: revert part of 18ce3751ccd488c78d3827e9f6bf54e6322676fb
>
> The above commit added WRITE_SYNC and switched various places to using
> that for committing writes that will be waited upon immediately after
> submission. However, this causes a performance regression with AS and CFQ
> for ext3 at least, since sync_dirty_buffer() will submit some writes with
> WRITE_SYNC while ext3 has sumitted others dependent writes without the sync
> flag set. This causes excessive anticipation/idling in the IO scheduler
> because sync and async writes get interleaved, causing a big performance
> regression for the below test case (which is meant to simulate sqlite
> like behaviour)....
>
> OK, let me test things out first, but note that with the changes that
> Linus has already accepted, this may not be an issue --- since we've
> now fixed ext3 to submit those dependent writes with the SYNC flag
> now. So I'm not sure the performance regression still applies, but
> I'll test using the test case supplied in the rest of the commit log
> and get back to you.

Yep that's the one. I'll throw some testing together here, too.

--
Jens Axboe