All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Chinner <david@fromorbit.com>
To: Chris Mason <chris.mason@oracle.com>
Cc: Steve French <smfrench@gmail.com>,
	linux-cifs <linux-cifs@vger.kernel.org>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	Mingming Cao <mcao@us.ibm.com>, Jeff Layton <jlayton@redhat.com>
Subject: Re: stable page writes: wait_on_page_writeback and packet signing
Date: Thu, 10 Mar 2011 10:46:07 +1100	[thread overview]
Message-ID: <20110309234607.GY15097@dastard> (raw)
In-Reply-To: <1299707686-sup-6871@think>

On Wed, Mar 09, 2011 at 04:58:19PM -0500, Chris Mason wrote:
> Excerpts from Dave Chinner's message of 2011-03-09 16:51:48 -0500:
> > On Wed, Mar 09, 2011 at 01:44:24PM -0600, Steve French wrote:
> > > Have alternative approaches, other than using wait_on_page_writeback,
> > > been considered for solving the stable page write problem in similar
> > > cases (since only about 1 out of 5 linux file systems uses this call
> > > today).
> > 
> > I think that is incorrect. write_cache_pages() does:
> > 
> >  929                         lock_page(page);
> > .....
> >  950                         if (PageWriteback(page)) {
> >  951                                 if (wbc->sync_mode != WB_SYNC_NONE)
> >  952                                         wait_on_page_writeback(page);
> >  953                                 else
> >  954                                         goto continue_unlock;
> >  955                         }
> >  956
> >  957                         BUG_ON(PageWriteback(page));
> >  958                         if (!clear_page_dirty_for_io(page))
> >  959                                 goto continue_unlock;
> >  960
> >  961                         trace_wbc_writepage(wbc, mapping->backing_dev_info);
> >  962                         ret = (*writepage)(page, wbc, data);
> > 
> > so every filesystem using the generic_writepages code already does
> > this check and wait before .writepage is called. Hence only the
> > filesystems that do not use generic_writepages() or
> > mpage_writepages() need a specific check, and that means most
> > filesystems are actually waiting on writeback pages correctly.
> 
> But checking here just means we don't start writeback on a page that is
> writeback, which is a good idea but not really related to stable pages?

True - but the context of the original question was w.r.t.  use of
wait_on_page_writeback in .writepage[s], which was what I assumed
(based on a quick cscope lookup) that the "1 out of 5" was then
referring to....

> stable pages means we don't let mmap'd pages or file_write muck around
> with the pages while they are in writeback, so we need to wait in
> file_write and page_mkwrite.

.... as I think it's much fewer than "1 in 5 linux filesystems" that
actually implement these waits to ensure pages stay stable once
under writeback. i.e. only BTRFS does them, IIRC.

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

  parent reply	other threads:[~2011-03-09 23:46 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-09 19:44 stable page writes: wait_on_page_writeback and packet signing Steve French
     [not found] ` <AANLkTinFx9KGKDWSdUvFSvT4S6f9QjBzX=6Uo17oO89+-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-03-09 21:51   ` Dave Chinner
2011-03-09 21:58     ` Chris Mason
2011-03-09 22:13       ` Steve French
     [not found]         ` <AANLkTikK8MOm-m9XsOA4YGRe=E9bJTDh4iEYXtZumNmv-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-03-10 12:26           ` Chris Mason
2011-03-10 13:16             ` Jeff Layton
     [not found]               ` <20110310081638.0f8275d4-xSBYVWDuneFaJnirhKH9O4GKTjYczspe@public.gmane.org>
2011-03-10 13:32                 ` Chris Mason
2011-03-10 13:47                   ` Jeff Layton
     [not found]                     ` <20110310084724.658fe5d7-xSBYVWDuneFaJnirhKH9O4GKTjYczspe@public.gmane.org>
2011-03-10 13:58                       ` Chris Mason
2011-03-11 12:11                         ` Jeff Layton
     [not found]                           ` <20110311071143.01b407b6-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2011-03-11 12:56                             ` Chris Mason
2011-03-11 13:42                               ` Jeff Layton
     [not found]                                 ` <20110311084221.4ac6bd11-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2011-03-11 16:00                                   ` Chris Mason
2011-03-09 23:46       ` Dave Chinner [this message]
2011-03-09 22:01     ` Steve French
2011-03-09 23:54       ` Jeff Layton
     [not found]         ` <20110309185427.7858c29b-4QP7MXygkU+dMjc06nkz3ljfA9RmPOcC@public.gmane.org>
2011-03-10  0:33           ` Steve French
     [not found]             ` <AANLkTi=pXHjE6tNMm0_nO=Cn3nGH8oZ6Xhm1STh8x1Xe-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-03-10  1:30               ` Jeff Layton
2011-03-10 13:53                 ` Steve French
     [not found]                 ` <20110309203044.4fd0498e-4QP7MXygkU+dMjc06nkz3ljfA9RmPOcC@public.gmane.org>
2011-03-11 11:53                   ` Jeff Layton
     [not found]       ` <AANLkTinDmqah6pQnHugoVxh-gDq+6+MDMuh-TyVAQ7LP-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-03-10  1:41         ` Trond Myklebust
     [not found]           ` <1299721264.2976.3.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2011-03-10  7:34             ` Christoph Hellwig
2011-03-10 13:44             ` Steve French
2011-03-09 23:45     ` Jeff Layton
2011-03-10  2:12       ` Jeff Layton

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=20110309234607.GY15097@dastard \
    --to=david@fromorbit.com \
    --cc=chris.mason@oracle.com \
    --cc=jlayton@redhat.com \
    --cc=linux-cifs@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=mcao@us.ibm.com \
    --cc=smfrench@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.