Commit 50a15981 authored by Martin Schwidefsky's avatar Martin Schwidefsky

[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: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent f433c4ae
...@@ -869,11 +869,11 @@ int page_referenced(struct page *page, ...@@ -869,11 +869,11 @@ int page_referenced(struct page *page,
vm_flags); vm_flags);
if (we_locked) if (we_locked)
unlock_page(page); unlock_page(page);
if (page_test_and_clear_young(page_to_pfn(page)))
referenced++;
} }
out: out:
if (page_test_and_clear_young(page_to_pfn(page)))
referenced++;
return referenced; return referenced;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment