[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>
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user