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 v4: ------------- - While reusing the tlb flush routines from radix_tlb.c in v3, setting of LPID got missed out. Take care of this by introducing new flush routines that set both PID and LPID when using tlbie instruction. This is required for process-scoped invalidations from guests (both L1 and nested guests). Added a new patch 1/3 for this. - Added code to handle H_RPT_INVALIDATE hcall issued by nested guest in L0 nested guest exit path. v3: https://lore.kernel.org/linuxppc-dev/20210105090557.2150104-1-bharata@xxxxxxxxxxxxx/T/#t Bharata B Rao (3): powerpc/book3s64/radix/tlb: tlbie primitives for process-scoped invalidations from guests KVM: PPC: Book3S HV: Add support for H_RPT_INVALIDATE KVM: PPC: Book3S HV: Use H_RPT_INVALIDATE in nested KVM Documentation/virt/kvm/api.rst | 17 ++ .../include/asm/book3s/64/tlbflush-radix.h | 18 +++ 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 | 91 +++++++++++ arch/powerpc/kvm/book3s_hv_nested.c | 108 ++++++++++++- arch/powerpc/kvm/powerpc.c | 3 + arch/powerpc/mm/book3s64/radix_tlb.c | 147 +++++++++++++++++- include/uapi/linux/kvm.h | 1 + 10 files changed, 415 insertions(+), 11 deletions(-) -- 2.26.2