linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: tytso@mit.edu
To: Christoph Hellwig <hch@infradead.org>
Cc: Ric Wheeler <rwheeler@redhat.com>, Mingming Cao <cmm@us.ibm.com>,
	djwong@us.ibm.com, linux-ext4 <linux-ext4@vger.kernel.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Keith Mannthey <kmannth@us.ibm.com>,
	Mingming Cao <mcao@us.ibm.com>
Subject: Re: [RFC] ext4: Don't send extra barrier during fsync if there are no dirty pages.
Date: Wed, 30 Jun 2010 08:48:32 -0400	[thread overview]
Message-ID: <20100630124832.GA1333@thunk.org> (raw)
In-Reply-To: <20100504154553.GA22777@infradead.org>

On Tue, May 04, 2010 at 11:45:53AM -0400, Christoph Hellwig wrote:
> On Tue, May 04, 2010 at 10:16:37AM -0400, Ric Wheeler wrote:
> > Checking per inode is actually incorrect - we do not want to short cut  
> > the need to flush the target storage device's write cache just because a  
> > specific file has no dirty pages.  If a power hit occurs, having sent  
> > the pages from to the storage device is not sufficient.
> 
> As long as we're only using the information for fsync doing it per inode
> is the correct thing.  We only want to flush the cache if the inode
> (data or metadata) is dirty in some way.  Note that this includes writes
> via O_DIRECT which are quite different to track - I've not found the
> original patch in my mbox so I can't comment if this is done right.

I agree.

I wonder if it's worthwhile to think about a new system call which
allows users to provide an array of fd's which are collectively should
be fsync'ed out at the same time.  Otherwise, we end up issuing
multiple barrier operations in cases where the application needs to
do:

	fsync(control_fd);
	fsync(data_fd);

						- Ted

  reply	other threads:[~2010-06-30 12:48 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-29 23:51 [RFC] ext4: Don't send extra barrier during fsync if there are no dirty pages Darrick J. Wong
2010-05-04  0:57 ` Mingming Cao
2010-05-04 14:16   ` Ric Wheeler
2010-05-04 15:45     ` Christoph Hellwig
2010-06-30 12:48       ` tytso [this message]
2010-06-30 13:21         ` Ric Wheeler
2010-06-30 13:44           ` tytso
2010-06-30 13:54             ` Ric Wheeler
2010-06-30 19:05               ` Andreas Dilger
2010-07-21 17:16             ` Jan Kara
2010-08-03  0:09               ` Darrick J. Wong
2010-08-03  9:01                 ` Christoph Hellwig
2010-08-04 18:16                   ` Darrick J. Wong
2010-08-03 13:21                 ` Jan Kara
2010-08-03 13:24         ` Avi Kivity
2010-08-04 23:32           ` Ted Ts'o
2010-08-05  2:20             ` Avi Kivity
2010-08-05 16:17               ` Ted Ts'o
2010-08-05 19:13                 ` Jeff Moyer
2010-08-05 20:39                   ` Ted Ts'o
2010-08-05 20:44                     ` Jeff Moyer
2010-05-04 19:49     ` Mingming Cao
2010-06-29 20:51       ` [RFC v2] " Darrick J. Wong
2010-08-05 16:40         ` Ted Ts'o
2010-08-05 16:45           ` Ted Ts'o
2010-08-06  7:04             ` Darrick J. Wong
2010-08-06 10:17               ` Ric Wheeler
2010-08-09 19:53               ` [RFC v3] ext4: Combine barrier requests coming from fsync Darrick J. Wong
2010-08-09 21:07                 ` Christoph Hellwig
2010-08-16 16:14                   ` Darrick J. Wong
2010-08-19  2:07                     ` Darrick J. Wong
2010-08-19  8:53                       ` Christoph Hellwig
2010-08-19  9:17                         ` Tejun Heo
2010-08-19 15:48                           ` Tejun Heo
2010-08-09 21:19                 ` Andreas Dilger
2010-08-09 23:38                   ` Darrick J. Wong
2010-08-19  2:14                     ` [RFC v4] ext4: Coordinate fsync requests Darrick J. Wong
2010-08-23 18:31                       ` Performance testing of various barrier reduction patches [was: Re: [RFC v4] ext4: Coordinate fsync requests] Darrick J. Wong
2010-09-23 23:25                         ` Darrick J. Wong
2010-09-24  6:24                           ` Andreas Dilger
2010-09-24 11:44                             ` Ric Wheeler
2010-09-27 23:01                             ` Darrick J. Wong
2010-10-08 21:26                               ` Darrick J. Wong
2010-10-08 21:56                                 ` Ric Wheeler
2010-10-11 20:20                                   ` Darrick J. Wong
2010-10-12 14:14                                     ` Christoph Hellwig
2010-10-15 23:39                                       ` Darrick J. Wong
2010-10-15 23:40                                         ` Christoph Hellwig
2010-10-16  0:02                                           ` Darrick J. Wong
2010-10-11 14:33                                 ` Ted Ts'o
2010-10-18 22:49                                 ` Darrick J. Wong
2010-10-19 18:28                                   ` Christoph Hellwig
2010-08-06  7:13           ` [RFC v2] ext4: Don't send extra barrier during fsync if there are no dirty pages Darrick J. Wong
2010-08-06 18:04             ` Ted Ts'o
2010-08-09 19:36               ` Darrick J. Wong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100630124832.GA1333@thunk.org \
    --to=tytso@mit.edu \
    --cc=cmm@us.ibm.com \
    --cc=djwong@us.ibm.com \
    --cc=hch@infradead.org \
    --cc=kmannth@us.ibm.com \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mcao@us.ibm.com \
    --cc=rwheeler@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).