All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nick Piggin <npiggin@suse.de>
To: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Christoph Lameter <clameter@sgi.com>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	GOTO <y-goto@jp.fujitsu.com>
Subject: Re: Warning on memory offline (and possible in usual migration?)
Date: Wed, 23 Apr 2008 17:28:09 +0200	[thread overview]
Message-ID: <20080423152809.GA16769@wotan.suse.de> (raw)
In-Reply-To: <20080423124425.5c80d3cf.kamezawa.hiroyu@jp.fujitsu.com>

On Wed, Apr 23, 2008 at 12:44:25PM +0900, KAMEZAWA Hiroyuki wrote:
> On Wed, 23 Apr 2008 04:53:58 +0200
> Nick Piggin <npiggin@suse.de> wrote:
> 
> > > BTW, can I ask a question for understanding this change ?
> > > 
> > > ==this check==
> > >  WARN_ON_ONCE(!PagePrivate(page) && !PageUptodate(page));
> > > 
> > > in __set_page_dirty_nobuffers() seems to check "the page should have buffer or
> > > be up-to-date when it calls this function."
> > > 
> > > When it comes to __set_page_dirty() (in fs/buffer.c)
> > > == this check==
> > >  WARN_ON_ONCE(warn && !PageUptodate(page));
> > > 
> > > is used and doesn't see page has buffers or not.
> > > What's difference between two functions's condition for WARNING ?
> > 
> > Yes, __set_page_dirty_nobuffers confusingly can also be called for pages
> > with buffers. In the case that the page has buffers (or any other private
> > metadata), then __set_page_dirty_nobuffers does not have enough information
> > to know whether the page should be uptodate before being marked dirty.
> > 
> > In the __set_page_dirty case in fs/buffer.c, we _do_ know that the page
> > has buffers and that it would be wrong to have a situation where the
> > page is !uptodate at this point.
> > 
> > Is that clear? Or have I explained it poorly?
> > 
> 
> Hmm...does that comes from difference of the purpose of the functions ?

Yes, well sometimes __set_page_dirty_nobuffers is actually called into
for a page which does have buffers or some private data (eg. via
redirty_page_for_writepage). If it was only called for pages that really
have no buffers, it could simply be WARN_ON(!PageUptodate(page))

 
> Is this correct ?
> ==
> set_page_dirty_buffers() (in fs/buffer.c) makes a page and _all_ buffers on it
> dirty. So, a page *must* be up-to-date when it calls set_page_dirty_buffers().
> This is used for mapped pages or some callers which requires the whole
> page containes valid data.
> 
> In set_page_dirty_nobuffers()case , it just makes a page to be dirty. We can't
> see whether a page is really up-to-date or not when PagePrivate(page) &&
> !PageUptodate(page). This is used for a page which contains some data
> to be written out. (part of buffers contains data.)
> 
> ==

Yes I think you have it correct. 

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2008-04-23 15:28 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-14  5:58 Warning on memory offline (and possible in usual migration?) KAMEZAWA Hiroyuki
2008-04-14 17:46 ` Christoph Lameter
2008-04-15 10:13   ` KAMEZAWA Hiroyuki
2008-04-15 19:31     ` Christoph Lameter
2008-04-16  0:23       ` KAMEZAWA Hiroyuki
2008-04-16  2:23         ` KAMEZAWA Hiroyuki
2008-04-16  3:10           ` KAMEZAWA Hiroyuki
2008-04-16  5:22             ` KAMEZAWA Hiroyuki
2008-04-16 18:04             ` Christoph Lameter
2008-04-16 11:00   ` KAMEZAWA Hiroyuki
2008-04-16 18:36     ` Andrew Morton
2008-04-17  0:19       ` KAMEZAWA Hiroyuki
2008-04-17  6:38         ` Warning on memory offline (possible in migration ?) KAMEZAWA Hiroyuki
2008-04-17  6:38           ` KAMEZAWA Hiroyuki
2008-04-17  6:43           ` Andrew Morton
2008-04-17  6:43             ` Andrew Morton
2008-04-17  6:55             ` KAMEZAWA Hiroyuki
2008-04-17  6:55               ` KAMEZAWA Hiroyuki
2008-04-22  4:41       ` Warning on memory offline (and possible in usual migration?) Nick Piggin
2008-04-22  4:52   ` Nick Piggin
2008-04-22  7:56     ` KAMEZAWA Hiroyuki
2008-04-22  9:43       ` Nick Piggin
2008-04-22  9:57         ` KAMEZAWA Hiroyuki
2008-04-22 19:16         ` Christoph Lameter
2008-04-23  0:48           ` Nick Piggin
2008-04-23  1:37             ` KAMEZAWA Hiroyuki
2008-04-23  2:41             ` KAMEZAWA Hiroyuki
2008-04-23  2:53               ` Nick Piggin
2008-04-23  3:44                 ` KAMEZAWA Hiroyuki
2008-04-23 15:28                   ` Nick Piggin [this message]
2008-04-24  1:34                     ` KAMEZAWA Hiroyuki
2008-04-23 17:50                   ` Christoph Lameter
2008-04-24  1:36                     ` KAMEZAWA Hiroyuki
2008-04-24 19:11                       ` Christoph Lameter
2008-04-25  0:11                         ` KAMEZAWA Hiroyuki
2008-04-23 17:47                 ` Christoph Lameter
2008-04-24  2:13                   ` Nick Piggin
2008-04-29  7:20             ` KAMEZAWA Hiroyuki
2008-04-30  6:56               ` Nick Piggin
2008-04-30  7:04                 ` KAMEZAWA Hiroyuki
2008-04-30  7:12                 ` Andrew Morton
2008-04-30  7:22                   ` KAMEZAWA Hiroyuki
2008-04-30  7:26                   ` Nick Piggin
2008-04-30 17:59                     ` Christoph Lameter
2008-04-30 18:01                     ` Christoph Lameter
2008-04-30 23:29                       ` kamezawa.hiroyu
2008-05-01  0:34                         ` Badari Pulavarty
2008-05-01  8:36                           ` kamezawa.hiroyu
2008-05-01  1:44                       ` Nick Piggin
2008-05-01 19:25                         ` Christoph Lameter
2008-05-02  0:44                           ` Nick Piggin
2008-05-02  1:07                             ` Christoph Lameter
2008-05-02  1:23                               ` Nick Piggin
2008-05-02  1:37                                 ` Christoph Lameter
2008-05-02 21:16                                   ` Christoph Lameter
2008-05-05  4:27                                     ` Nick Piggin
2008-05-05 17:28                                       ` Christoph Lameter
2008-05-06  8:52                                         ` Nick Piggin
2008-05-06 17:49                                           ` Christoph Lameter
2008-04-22  4:50 ` Nick Piggin

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=20080423152809.GA16769@wotan.suse.de \
    --to=npiggin@suse.de \
    --cc=akpm@linux-foundation.org \
    --cc=clameter@sgi.com \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=linux-mm@kvack.org \
    --cc=y-goto@jp.fujitsu.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.