]> git.karo-electronics.de Git - karo-tx-linux.git/commit
mm: reduce rmap overhead for ex-KSM page copies created on swap faults
authorJohannes Weiner <hannes@cmpxchg.org>
Thu, 7 Feb 2013 01:26:12 +0000 (12:26 +1100)
committerStephen Rothwell <sfr@canb.auug.org.au>
Mon, 18 Feb 2013 05:46:17 +0000 (16:46 +1100)
commita71dcb8424677a14c4a287ba2d79041104d8505b
tree2b8b01f8bc71eb811e1b2000a79f37bba694b627
parent3cb7e5ca576a170b7f87da61b68927c13bab141a
mm: reduce rmap overhead for ex-KSM page copies created on swap faults

When ex-KSM pages are faulted from swap cache, the fault handler is not
capable of re-establishing anon_vma-spanning KSM pages.  In this case, a
copy of the page is created instead, just like during a COW break.

These freshly made copies are known to be exclusive to the faulting VMA
and there is no reason to go look for this page in parent and sibling
processes during rmap operations.

Use page_add_new_anon_rmap() for these copies.  This also puts them on the
proper LRU lists and marks them SwapBacked, so we can get rid of doing
this ad-hoc in the KSM copy code.

Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
Reviewed-by: Rik van Riel <riel@redhat.com>
Acked-by: Hugh Dickins <hughd@google.com>
Cc: Simon Jeons <simon.jeons@gmail.com>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Michal Hocko <mhocko@suse.cz>
Cc: Satoru Moriya <satoru.moriya@hds.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/ksm.c
mm/memory.c