On Monday 13 September 2010 13:08:17 Martin Schwidefsky wrote: > On Mon, 13 Sep 2010 12:13:47 +0530 > > Nikanth Karthikesan <knikanth@xxxxxxx> 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 -- To unsubscribe from this list: send the line "unsubscribe linux-s390" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html