This is not entirely settled because of future compatibility concern but in terms of Linux code and existing processors I think the approach works.
Thanks, Nick Nicholas Piggin (5): powerpc/64s: update_mmu_cache inline the radix test powerpc/64s: implement mm_nmmu_has_tlbs powerpc/64s: add CONFIG_PPC_NMMU for nest MMU support powerpc/64s/radix: implement complete radix__ptep_get_and_clear_full powerpc/64s/radix: Use non-atomic PTE updates if the MMU does not modify the PTE arch/powerpc/Kconfig | 1 + arch/powerpc/include/asm/book3s/64/mmu.h | 2 + arch/powerpc/include/asm/book3s/64/pgtable.h | 10 +-- arch/powerpc/include/asm/book3s/64/radix.h | 50 +++++------ arch/powerpc/include/asm/book3s/64/tlbflush.h | 11 ++- arch/powerpc/include/asm/book3s/pgtable.h | 11 ++- arch/powerpc/include/asm/mmu_context.h | 5 +- arch/powerpc/mm/book3s32/mmu.c | 4 +- arch/powerpc/mm/book3s64/hash_utils.c | 7 +- arch/powerpc/mm/book3s64/radix_hugetlbpage.c | 3 +- arch/powerpc/mm/book3s64/radix_pgtable.c | 82 +++++++++++++++---- arch/powerpc/mm/book3s64/radix_tlb.c | 26 +++--- arch/powerpc/platforms/Kconfig | 3 + arch/powerpc/platforms/powernv/Kconfig | 1 + 14 files changed, 134 insertions(+), 82 deletions(-) -- 2.23.0