Paolo or Radim, Please do a pull from my kvm-ppc-next-5.2-1 tag to get a PPC update for 5.2. The main new feature here is that we can now let guests access the POWER9 XIVE interrupt controller directly for things like acknowledge, EOI, enable and disable on interrupts, rather than requiring guests to do hypercalls for these operations. I have merged in the topic/ppc-kvm branch from the powerpc tree because one of the patches there is a prerequisite for the XIVE patch series. That's why there are changes to arch/powerpc/kernel in the diffstat. Stephen Rothwell noted a conflict between my tree and the kvm-arm tree because we have both allocated new capability numbers. The XIVE patch series also modifies generic KVM code to add mmap and release methods on KVM devices. Thanks, Paul. The following changes since commit 345077c8e172c255ea0707214303ccd099e5656b: KVM: PPC: Book3S: Protect memslots while validating user address (2019-04-05 14:37:24 +1100) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc tags/kvm-ppc-next-5.2-1 for you to fetch changes up to 0caecf5b00199636eb2d32201199ecd6be52558d: KVM: PPC: Book3S HV: XIVE: Clear escalation interrupt pointers on device close (2019-04-30 19:41:01 +1000) ---------------------------------------------------------------- PPC KVM update for 5.2 * Support for guests to access the new POWER9 XIVE interrupt controller hardware directly, reducing interrupt latency and overhead for guests. * In-kernel implementation of the H_PAGE_INIT hypercall. * Reduce memory usage of sparsely-populated IOMMU tables. * Several bug fixes. ---------------------------------------------------------------- Alexey Kardashevskiy (3): KVM: PPC: Book3S HV: Fix lockdep warning when entering the guest KVM: PPC: Book3S HV: Avoid lockdep debugging in TCE realmode handlers KVM: PPC: Book3S: Allocate guest TCEs on demand too Cédric Le Goater (17): powerpc/xive: add OPAL extensions for the XIVE native exploitation support KVM: PPC: Book3S HV: Add a new KVM device for the XIVE native exploitation mode KVM: PPC: Book3S HV: XIVE: Introduce a new capability KVM_CAP_PPC_IRQ_XIVE KVM: PPC: Book3S HV: XIVE: add a control to initialize a source KVM: PPC: Book3S HV: XIVE: Add a control to configure a source KVM: PPC: Book3S HV: XIVE: Add controls for the EQ configuration KVM: PPC: Book3S HV: XIVE: Add a global reset control KVM: PPC: Book3S HV: XIVE: Add a control to sync the sources KVM: PPC: Book3S HV: XIVE: Add a control to dirty the XIVE EQ pages KVM: PPC: Book3S HV: XIVE: Add get/set accessors for the VP XIVE state KVM: Introduce a 'mmap' method for KVM devices KVM: PPC: Book3S HV: XIVE: Add a TIMA mapping KVM: PPC: Book3S HV: XIVE: Add a mapping for the source ESB pages KVM: PPC: Book3S HV: XIVE: Add passthrough support KVM: PPC: Book3S HV: XIVE: Activate XIVE exploitation mode KVM: Introduce a 'release' method for KVM devices KVM: PPC: Book3S HV: XIVE: Replace the 'destroy' method by a 'release' method Michael Neuling (1): powerpc: Add force enable of DAWR on P9 option Palmer Dabbelt (1): KVM: PPC: Book3S HV: smb->smp comment fixup Paul Mackerras (6): KVM: PPC: Book3S HV: Fix XICS-on-XIVE H_IPI when priority = 0 KVM: PPC: Book3S HV: Move HPT guest TLB flushing to C code KVM: PPC: Book3S HV: Flush TLB on secondary radix threads Merge remote-tracking branch 'remotes/powerpc/topic/ppc-kvm' into kvm-ppc-next KVM: PPC: Book3S HV: XIVE: Prevent races when releasing device KVM: PPC: Book3S HV: XIVE: Clear escalation interrupt pointers on device close Suraj Jitindar Singh (4): KVM: PPC: Book3S HV: Implement virtual mode H_PAGE_INIT handler KVM: PPC: Book3S HV: Implement real mode H_PAGE_INIT handler KVM: PPC: Book3S HV: Handle virtual mode in XIVE VCPU push code KVM: PPC: Book3S HV: Save/restore vrsave register in kvmhv_p9_guest_entry() Documentation/powerpc/DAWR-POWER9.txt | 32 + Documentation/virtual/kvm/api.txt | 10 + Documentation/virtual/kvm/devices/xive.txt | 197 +++++ arch/powerpc/include/asm/hw_breakpoint.h | 8 + arch/powerpc/include/asm/kvm_host.h | 11 +- arch/powerpc/include/asm/kvm_ppc.h | 41 +- arch/powerpc/include/asm/opal-api.h | 7 +- arch/powerpc/include/asm/opal.h | 7 + arch/powerpc/include/asm/xive.h | 17 + arch/powerpc/include/uapi/asm/kvm.h | 46 + arch/powerpc/kernel/hw_breakpoint.c | 62 +- arch/powerpc/kernel/process.c | 9 +- arch/powerpc/kernel/ptrace.c | 3 +- arch/powerpc/kvm/Makefile | 2 +- arch/powerpc/kvm/book3s.c | 42 +- arch/powerpc/kvm/book3s_64_vio.c | 96 ++- arch/powerpc/kvm/book3s_64_vio_hv.c | 105 ++- arch/powerpc/kvm/book3s_hv.c | 155 ++-- arch/powerpc/kvm/book3s_hv_builtin.c | 57 ++ arch/powerpc/kvm/book3s_hv_rm_mmu.c | 144 ++++ arch/powerpc/kvm/book3s_hv_rmhandlers.S | 103 +-- arch/powerpc/kvm/book3s_xive.c | 250 ++++-- arch/powerpc/kvm/book3s_xive.h | 37 + arch/powerpc/kvm/book3s_xive_native.c | 1249 ++++++++++++++++++++++++++++ arch/powerpc/kvm/book3s_xive_template.c | 78 +- arch/powerpc/kvm/powerpc.c | 37 + arch/powerpc/platforms/powernv/opal-call.c | 3 + arch/powerpc/sysdev/xive/native.c | 110 +++ include/linux/kvm_host.h | 10 + include/uapi/linux/kvm.h | 3 + virt/kvm/kvm_main.c | 24 + 31 files changed, 2670 insertions(+), 285 deletions(-) create mode 100644 Documentation/virtual/kvm/devices/xive.txt create mode 100644 arch/powerpc/kvm/book3s_xive_native.c