Re: [PATCH 4/4] ext4: call blkdev_issue_flush on fsync

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Jens Axboe
Date: Wednesday, May 21, 2008 - 12:30 am

On Tue, May 20 2008, Jamie Lokier wrote:

It may not mention flushing explicitly, but it does not have to since
the flushing is one way to implement what the above describes. Note how
it says that request must have made it to physical medium before
allowing others to continue? That means you have to either write through
or flush caches, otherwise you cannot make that guarentee.


Yeah, that is precisely what it is and why it does not mention flushing
explicitly!


Right, that is what ordered tags give you. But if you have write back
caching enabled, then you get a completion event before the data is
actually on disk. Perhaps that is OK for some cases, perhaps not. The
Linux barrier implementation has always guarenteed that the data is
actually on platter before considering a barrier write done, as
described in the text you quote.


There are some good ideas in there, I'll punt that to the fs people.
Ignoring actual disk drives makes things easier :-). While SCSI has
ordered IO with write back caching, SATA does not. You basically have to
drain and flush there, or use one of the other variants for getting data
in disk - see blkdev.h:

        /*
         * Hardbarrier is supported with one of the following methods.
         *
         * NONE         : hardbarrier unsupported
         * DRAIN        : ordering by draining is enough
         * DRAIN_FLUSH  : ordering by draining w/ pre and post flushes
         * DRAIN_FUA    : ordering by draining w/ pre flush and FUA
         * write
         * TAG          : ordering by tag is enough
         * TAG_FLUSH    : ordering by tag w/ pre and post flushes
         * TAG_FUA      : ordering by tag w/ pre flush and FUA write

-- 
Jens Axboe

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