Re: [PATCH] 2.4.x write barriers (updated for ext3)

Daniel Phillips
2002-03-04T19:55:40Z

On March 4, 2002 06:16 pm, Chris Mason wrote:
> On Monday, March 04, 2002 05:04:34 PM +0000 "Stephen C. Tweedie" <sct@redhat.com> wrote:
>
> > Basically, as far as journal writes are concerned, you just want
> > things sequential for performance, so serialisation isn't a problem
> > (and it typically happens anyway). After the journal write, the
> > eventual proper writeback of the dirty data to disk has no internal
> > ordering requirement at all --- it just needs to start strictly after
> > the commit, and end before the journal records get reused. Beyond
> > that, the write order for the writeback data is irrelevant.
>
> writeback data order is important, mostly because of where the data blocks
> are in relation to the log. If you've got bdflush unloading data blocks
> to the disk, and another process doing a commit, the drive's queue
> might look like this:
>
> data1, data2, data3, commit1, data4, data5 etc.
>
> If commit1 is an ordered tag, the drive is required to flush
> data1, data2 and data3, then write the commit, then seek back
> for data4 and data5.
>
> If commit1 is not an ordered tag, the drive can write all the
> data blocks, then seek back to get the commit.

We can have more than one queue per device I think. Then we can have reads
unaffected by write barriers, for example. It never makes sense for a the
write barrier to wait on a read.

--
Daniel