Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Chris Mason <chris.mason@...>
Cc: Andi Kleen <andi@...>, Andrew Morton <akpm@...>, Eric Sandeen <sandeen@...>, <linux-ext4@...>, <linux-kernel@...>, <linux-fsdevel@...>
Date: Tuesday, May 20, 2008 - 12:27 pm

Chris Mason wrote:

I think you're right, but it's hard to be sure.  One of the problems
with barrier-implemented-as-flush-all is that it flushes data=ordered
data, even when that's not wanted, and there can be a lot of data in
the disk's write cache, spread over many seeks.

Then it's good to delay barrier-flushes to batch metadata commits, but
good to issue the barrier-flushes prior to large batches of
data=ordered data, so the latter can be survive in the disk write
cache for seek optimisations with later requests which aren't yet
known.

All this sounds complicated at the JBD layer, and IMHO much simpler at
the request elevator layer.


Rather than tracking when it's "allowed" to dirty a metadata block, it
will be simpler to keep a flag saying "barrier needed", and just issue
the barrier prior to writing a metadata block, if the flag is set.

So metadata write scheduling doesn't need to be changed at all.  That
will be quite simple.

You might still change the scheduling, but only as a performance
heuristic in any way which turns out to be easy.

Really, that flag should live in the request elevator instead, where
it could do more good.  I.e. WRITE_BARRIER wouldn't actually issue a
barrier op to disk after writing.  It would just set a request
elevator flag, so a barrier op is issued prior to the next WRITE.
That road opens some nice optimisations on software RAID, which aren't
possible if it's done at the JBD layer.


Good point.

In this case, re-allocating time isn't the problem: actually writing
to them is.  Writes to recycled block require to be ordered after
commits which recycled them.

As above, just issue the barrier prior to the next write which needs
to be ordered - effectively it's glued on the front of the write op.

This comes for free with no change to deletion code (wow :-) if the
only operations are WRITE_BARRIER (= flush before and after or
equivalent) and WRITE (ordered by WRITE_BARRIER).


I'm suspecting the opposite might be better.

I'm-about-to-barrier-please-move-the-barrier-in-front-of-unordered-writes.
The more writes you _don't_ flush synchronously, the more
opportunities you give the disk's cache to reduce seeking.

It's only a hunch though.

-- Jamie
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 0/4] (RESEND) ext3[34] barrier changes, Eric Sandeen, (Fri May 16, 3:02 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Andrew Morton, (Fri May 16, 4:05 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Eric Sandeen, (Thu May 29, 9:36 am)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Pavel Machek, (Mon May 19, 5:04 am)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Andi Kleen, (Sun May 18, 3:54 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Chris Mason, (Mon May 19, 9:26 am)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Jamie Lokier, (Tue May 20, 11:36 am)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Chris Mason, (Tue May 20, 12:02 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Jamie Lokier, (Tue May 20, 12:27 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Chris Mason, (Tue May 20, 1:08 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Jamie Lokier, (Tue May 20, 6:26 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Theodore Tso, (Mon May 19, 10:46 am)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Ric Wheeler, (Fri May 23, 2:33 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Jamie Lokier, (Fri May 16, 6:30 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Eric Sandeen, (Fri May 16, 4:53 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Jamie Lokier, (Fri May 16, 6:03 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Theodore Tso, (Sun May 18, 8:28 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Jamie Lokier, (Tue May 20, 11:13 am)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Greg Smith, (Wed May 21, 4:25 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Eric Sandeen, (Fri May 16, 6:21 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Andi Kleen, (Sun May 18, 4:03 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Theodore Tso, (Sun May 18, 8:43 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Eric Sandeen, (Sun May 18, 10:29 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Jamie Lokier, (Tue May 20, 7:35 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Andrew Morton, (Mon May 19, 12:11 am)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Chris Mason, (Mon May 19, 1:16 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Daniel Phillips, (Wed May 21, 6:30 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Jamie Lokier, (Tue May 20, 10:58 am)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Chris Mason, (Mon May 19, 2:39 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Pavel Machek, (Wed May 21, 7:22 am)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Andrew Morton, (Wed May 21, 2:03 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Jamie Lokier, (Wed May 21, 3:54 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Theodore Tso, (Wed May 21, 2:29 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Jamie Lokier, (Wed May 21, 3:36 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Chris Mason, (Wed May 21, 3:40 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Andrew Morton, (Wed May 21, 2:49 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Jamie Lokier, (Wed May 21, 3:42 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Eric Sandeen, (Wed May 21, 2:15 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Jamie Lokier, (Wed May 21, 3:43 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Theodore Tso, (Wed May 21, 8:32 am)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Jens Axboe, (Tue May 20, 4:25 am)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Chris Mason, (Tue May 20, 8:17 am)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Jan Kara, (Mon May 19, 6:39 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Chris Mason, (Mon May 19, 8:29 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Timothy Shimmin, (Mon May 19, 11:29 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Chris Mason, (Tue May 20, 8:04 am)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Jamie Lokier, (Fri May 16, 6:53 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Theodore Tso, (Fri May 16, 8:20 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Andrew Morton, (Fri May 16, 8:35 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Chris Mason, (Sat May 17, 8:48 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Jamie Lokier, (Tue May 20, 7:44 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Theodore Tso, (Sat May 17, 9:36 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Ric Wheeler, (Sun May 18, 10:49 am)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Jamie Lokier, (Tue May 20, 7:48 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Jamie Lokier, (Tue May 20, 10:42 am)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Theodore Tso, (Sat May 17, 9:43 am)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Theodore Tso, (Sat May 17, 4:44 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Jamie Lokier, (Tue May 20, 10:45 am)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Andreas Dilger, (Sat May 17, 1:59 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Andrew Morton, (Fri May 16, 4:58 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Jamie Lokier, (Fri May 16, 5:45 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Eric Sandeen, (Fri May 16, 6:03 pm)
Re: [PATCH 0/4] (RESEND) ext3[34] barrier changes, Jamie Lokier, (Fri May 16, 6:09 pm)
[PATCH 4/4] ext4: call blkdev_issue_flush on fsync, Eric Sandeen, (Fri May 16, 3:09 pm)
Re: [PATCH 4/4] ext4: call blkdev_issue_flush on fsync, Theodore Tso, (Mon May 19, 10:34 pm)
Re: [PATCH 4/4] ext4: call blkdev_issue_flush on fsync, Jamie Lokier, (Tue May 20, 11:43 am)
Re: [PATCH 4/4] ext4: call blkdev_issue_flush on fsync, Jamie Lokier, (Tue May 20, 6:02 pm)
Re: [PATCH 4/4] ext4: call blkdev_issue_flush on fsync, Eric Sandeen, (Tue May 20, 11:52 am)
[PATCH 3/4] ext4: enable barriers by default, Eric Sandeen, (Fri May 16, 3:08 pm)
[PATCH 2/4] ext3: call blkdev_issue_flush on fsync, Eric Sandeen, (Fri May 16, 3:07 pm)
Re: [PATCH 2/4] ext3: call blkdev_issue_flush on fsync, Jamie Lokier, (Fri May 16, 6:15 pm)
[PATCH 1/4] ext3: enable barriers by default, Eric Sandeen, (Fri May 16, 3:05 pm)
Re: [PATCH 1/4] ext3: enable barriers by default, Pavel Machek, (Mon May 19, 4:58 am)