s390: fix gmap_ipte_notifier vs. software dirty pages
authorChristian Borntraeger <borntraeger@de.ibm.com>
Wed, 8 May 2013 13:25:38 +0000 (15:25 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Wed, 15 May 2013 11:09:07 +0000 (13:09 +0200)
commitbb4b42ce0ca36af8c113587ab64b138b3cf5459c
treecc9d66a088378d1d409220e632c54466912cf40e
parent617e164c35c94c936e3632b387d6dbb3d80c2c02
s390: fix gmap_ipte_notifier vs. software dirty pages

On heavy paging load some guest cpus started to loop in gmap_ipte_notify.
This was visible as stalled cpus inside the guest. The gmap_ipte_notifier
tries to map a user page and then made sure that the pte is valid and
writable. Turns out that with the software change bit tracking the pte
can become read-only (and only software writable) if the page is clean.
Since we loop in this code, the page would stay clean and, therefore,
be never writable again.
Let us just use fixup_user_fault, that guarantees to call handle_mm_fault.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/mm/pgtable.c