-
- Downloads
[S390] refactor page table functions for better pgste support
Rework the architecture page table functions to access the bits in the
page table extension array (pgste). There are a number of changes:
1) Fix missing pgste update if the attach_count for the mm is <= 1.
2) For every operation that affects the invalid bit in the pte or the
rcp byte in the pgste the pcl lock needs to be acquired. The function
pgste_get_lock gets the pcl lock and returns the current pgste value
for a pte pointer. The function pgste_set_unlock stores the pgste
and releases the lock. Between these two calls the bits in the pgste
can be shuffled.
3) Define two software bits in the pte _PAGE_SWR and _PAGE_SWC to avoid
calling SetPageDirty and SetPageReferenced from pgtable.h. If the
host reference backup bit or the host change backup bit has been
set the dirty/referenced state is transfered to the pte. The common
code will pick up the state from the pte.
4) Add ptep_modify_prot_start and ptep_modify_prot_commit for mprotect.
5) Remove pgd_populate_kernel, pud_populate_kernel, pmd_populate_kernel
pgd_clear_kernel, pud_clear_kernel, pmd_clear_kernel and ptep_invalidate.
6) Rename kvm_s390_test_and_clear_page_dirty to
ptep_test_and_clear_user_dirty and add ptep_test_and_clear_user_young.
7) Define mm_exclusive() and mm_has_pgste() helper to improve readability.
Signed-off-by:
Martin Schwidefsky <schwidefsky@de.ibm.com>
Showing
- arch/s390/include/asm/mmu.h 4 additions, 2 deletionsarch/s390/include/asm/mmu.h
- arch/s390/include/asm/page.h 4 additions, 0 deletionsarch/s390/include/asm/page.h
- arch/s390/include/asm/pgalloc.h 5 additions, 24 deletionsarch/s390/include/asm/pgalloc.h
- arch/s390/include/asm/pgtable.h 308 additions, 198 deletionsarch/s390/include/asm/pgtable.h
- arch/s390/mm/init.c 2 additions, 1 deletionarch/s390/mm/init.c
- arch/s390/mm/pageattr.c 1 addition, 1 deletionarch/s390/mm/pageattr.c
- arch/s390/mm/vmem.c 7 additions, 7 deletionsarch/s390/mm/vmem.c
Loading
Please register or sign in to comment