[Top] [All Lists]

Re: [PATCH 07/17] vfs: Introduce new helpers for syncing after writing t

To: Jan Kara <jack@xxxxxxx>
Subject: Re: [PATCH 07/17] vfs: Introduce new helpers for syncing after writing to O_SYNC file or IS_SYNC inode
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Wed, 26 Aug 2009 20:04:23 -0400
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>, LKML <linux-kernel@xxxxxxxxxxxxxxx>, Evgeniy Polyakov <zbr@xxxxxxxxxxx>, ocfs2-devel@xxxxxxxxxxxxxx, Joel Becker <joel.becker@xxxxxxxxxx>, Felix Blyakher <felixb@xxxxxxx>, xfs@xxxxxxxxxxx, Anton Altaparmakov <aia21@xxxxxxxxxx>, linux-ntfs-dev@xxxxxxxxxxxxxxxxxxxxx, OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx>, linux-ext4@xxxxxxxxxxxxxxx, tytso@xxxxxxx
In-reply-to: <20090826182236.GA1290@xxxxxxxxxxxxx>
References: <1250697884-22288-1-git-send-email-jack@xxxxxxx> <1250697884-22288-8-git-send-email-jack@xxxxxxx> <20090819162638.GE6150@xxxxxxxxxxxxx> <20090820121531.GC16486@xxxxxxxxxxxxxxx> <20090820162729.GA24659@xxxxxxxxxxxxx> <20090826182236.GA1290@xxxxxxxxxxxxx>
User-agent: Mutt/1.5.19 (2009-01-05)
On Wed, Aug 26, 2009 at 02:22:36PM -0400, Christoph Hellwig wrote:
> On Thu, Aug 20, 2009 at 12:27:29PM -0400, Christoph Hellwig wrote:
> > Maybe you can help brain storming, but I still can't see any way in that
> > the
> > 
> >   - write data
> >   - write inode
> >   - wait for data
> > 
> > actually is a benefit in terms of semantics (I agree that it could be
> > faster in theory, but even that is debatable with todays seek latencies
> > in disks)
> Btw, another reason why our current default is actively harmful:
>       barriers
> With volatile write caches we do have to flush the disk write cache in
> ->fsync, either implicitly by a metadata operation, or explicitly if
> only data changed.  Unless the filesystems waits itself for the data
> to hit the disk like XFS or btrfs will be issue the cache flush
> potentially before the data write has actually reached the disk cache.

Ok, this one failed the reality check - no matter how hard I tried
I could not reproduce that case in my test harness.  It turns out
cache flush request are quite sensibly treated as barriers by the block
layer and thus we drain the queue before issueing the cache flush.

<Prev in Thread] Current Thread [Next in Thread>