Commit 50a15981a1fac7e019ff7c3cba87531fb580f065
1 parent
f433c4aec9
Exists in
master
and in
6 other branches
[S390] reference bit testing for unmapped pages
On x86 a page without a mapper is by definition not referenced / old. The s390 architecture keeps the reference bit in the storage key and the current code will check the storage key for page without a mapper. This leads to an interesting effect: the first time an s390 system needs to write pages to swap it only finds referenced pages. This causes a lot of pages to get added and written to the swap device. To avoid this behaviour change page_referenced to query the storage key only if there is a mapper of the page. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Showing 1 changed file with 3 additions and 3 deletions Side-by-side Diff
mm/rmap.c
... | ... | @@ -869,11 +869,11 @@ |
869 | 869 | vm_flags); |
870 | 870 | if (we_locked) |
871 | 871 | unlock_page(page); |
872 | + | |
873 | + if (page_test_and_clear_young(page_to_pfn(page))) | |
874 | + referenced++; | |
872 | 875 | } |
873 | 876 | out: |
874 | - if (page_test_and_clear_young(page_to_pfn(page))) | |
875 | - referenced++; | |
876 | - | |
877 | 877 | return referenced; |
878 | 878 | } |
879 | 879 |