Re: [RFC PATCH] s390: mm: rmap: Transfer storage key to struct page under the page lock

Hugh Dickins
2012-04-18T04:00:23Z

On Tue, 17 Apr 2012, Martin Schwidefsky wrote:
> On Tue, 17 Apr 2012 13:29:25 +0100
> Mel Gorman <mgorman@suse.de> wrote:
> >
> > In the zap_pte_range() case at least, pte_dirty() is only being checked
> > for !PageAnon pages so if we took this approach we would miss
> > PageSwapCache pages. If we added the check then the same problem is hit
> > and we'd need additional logic there for s390 to drop the PTL, take the
> > page lock and retry the operation. It'd still be ugly :(
>
> Well if x86 can get away with ignoring PageSwapCache pages in zap_pte_range()
> pages then s390 should be able to get away with it as well, no ?

When it's zap_pte_range() calling page_remove_rmap(), yes; but that's not
the only caller of page_remove_rmap(), and I believe there's at least one
caller which absolutely needs it to do that s390 set_page_dirty() on swap.

But I don't see any need to be discussing ugly patches for this any more:
there's a very simple patch which improves the swap path anyway, and if
deemed advisable, we can also rearrange __add_to_swap_cache() a little.

Hugh