All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: Why S390 SetPageUptodate() unconditionally clears page dirty state?
       [not found] <20100913093817.715b89be@mschwide.boeblingen.de.ibm.com>
@ 2010-09-13 10:44 ` Nikanth Karthikesan
  0 siblings, 0 replies; only message in thread
From: Nikanth Karthikesan @ 2010-09-13 10:44 UTC (permalink / raw)
  To: linux-s390

On Monday 13 September 2010 13:08:17 Martin Schwidefsky wrote:
> On Mon, 13 Sep 2010 12:13:47 +0530
> 
> Nikanth Karthikesan <knikanth@suse.de> wrote:
> > On S390, the SetPageUptodate() clears the page dirty state, if page was
> > not PG_uptodate before. This seems to mark dirty pages read back from
> > swap to be marked as clean. Shouldn't page_clear_dirty() be called, only
> > if page is not flagged as dirty?
> 
> To call page_clear_dirty() only if the page is not dirty would be wrong.
> s390 keeps the dirty bit in the per-page storage key. The I/O to read a
>  page will set the per-page dirty bit. The PG_dirty bit of a page may or
>  may not be set when SetPageUptodate is called. To clear the hardware dirty
>  bit only if the software PG_dirty bit is set would result in lots of pages
>  that still have the hardware dirty bit set. Please not that on x86 the
>  dirty-bit is kept in the pte. Since a not up-to-date page can not have any
>  mapper this means that the page won't have any hardware dirty-bits set
>  (that says nothing about the software dirty bit PG_dirty). To create the
>  same state for s390 we clear the storage key unconditionally.
> 

Got it. Thanks for the explanation.

Thanks
Nikanth

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2010-09-13 10:44 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20100913093817.715b89be@mschwide.boeblingen.de.ibm.com>
2010-09-13 10:44 ` Why S390 SetPageUptodate() unconditionally clears page dirty state? Nikanth Karthikesan

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.