aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel
diff options
context:
space:
mode:
authorChristian Borntraeger <borntraeger@de.ibm.com>2007-11-20 11:13:36 +0100
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2007-11-20 11:13:46 +0100
commitce7e9fae8db07af4080e868f4588f8f095f803dc (patch)
tree000a6cc755ee35ef3cfc0795c13ed500dc5457de /arch/s390/kernel
parent[S390] Fix kernel preemption. (diff)
downloadlinux-dev-ce7e9fae8db07af4080e868f4588f8f095f803dc.tar.xz
linux-dev-ce7e9fae8db07af4080e868f4588f8f095f803dc.zip
[S390] Optimize storage key handling for anonymous pages
page_mkclean used to call page_clear_dirty for every given page. This is different to all other architectures, where the dirty bit in the PTEs is only resetted, if page_mapping() returns a non-NULL pointer. We can move the page_test_dirty/page_clear_dirty sequence into the 2nd if to avoid unnecessary iske/sske sequences, which are expensive. This change also helps kvm for s390 as the host must transfer the dirty bit into the guest status bits. By moving the page_clear_dirty operation into the 2nd if, the vm will only call page_clear_dirty for pages where it walks the mapping anyway. There it calls ptep_clear_flush for writable ptes, so we can transfer the dirty bit to the guest. Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel')
0 files changed, 0 insertions, 0 deletions