This patchset adds support for the new hcall H_RPT_INVALIDATE and replaces the nested tlb flush calls with this new hcall if support for the same exists. Changes in v6: ------------- - Split the patch that adds hcall support in to three parts so that it becomes easy to understand. part1: hcall support for L1 guest part2: hcall support for nested guests part3: add KVM_CAP_PPC_RPT_INVALIDATE - Renames, comments and code reorgs to improve readability of the patches. - Added a patch to fix comments in hcall args (Aneesh). - Added hcall documentation as part of commit message. - Correct handling for partition-scoped invalidation of nested guests (Aneesh). I haven't addressed the optimization that David suggested for psize_to_rpti_pgsize() and that could be done later separately. This patchset passes the following tests: ----------------------------------------- - Boot and reboot of L1, L2 and L3 guests with GTSE=0. - Boot and reboot of L1 and multiple L2 guests with GTSE=0 - vm class stress-ng tests on L3 with GTSE=0 - Boot and reboot of L1, L2 and L3 guest with GTSE=1 v5: https://lore.kernel.org/linuxppc-dev/20210224082510.3962423-1-bharata@xxxxxxxxxxxxx/T/#t Aneesh Kumar K.V (1): KVM: PPC: Book3S HV: Fix comments of H_RPT_INVALIDATE arguments Bharata B Rao (5): powerpc/book3s64/radix: Add H_RPT_INVALIDATE pgsize encodings to mmu_psize_def KVM: PPC: Book3S HV: Add support for H_RPT_INVALIDATE KVM: PPC: Book3S HV: Nested support in H_RPT_INVALIDATE KVM: PPC: Book3S HV: Add KVM_CAP_PPC_RPT_INVALIDATE capability KVM: PPC: Book3S HV: Use H_RPT_INVALIDATE in nested KVM Documentation/virt/kvm/api.rst | 18 +++ arch/powerpc/include/asm/book3s/64/mmu.h | 1 + .../include/asm/book3s/64/tlbflush-radix.h | 4 + arch/powerpc/include/asm/hvcall.h | 4 +- arch/powerpc/include/asm/kvm_book3s.h | 3 + arch/powerpc/include/asm/mmu_context.h | 11 ++ arch/powerpc/kvm/book3s_64_mmu_radix.c | 27 +++- arch/powerpc/kvm/book3s_hv.c | 111 +++++++++++++ arch/powerpc/kvm/book3s_hv_nested.c | 116 ++++++++++++- arch/powerpc/kvm/powerpc.c | 3 + arch/powerpc/mm/book3s64/radix_pgtable.c | 5 + arch/powerpc/mm/book3s64/radix_tlb.c | 152 +++++++++++++++++- include/uapi/linux/kvm.h | 1 + 13 files changed, 443 insertions(+), 13 deletions(-) -- 2.26.2