Paolo (or Radim), Please do a pull from my kvm-ppc-next branch to get a PPC KVM update for 4.11. The big feature this time is support for POWER9 using the radix-tree MMU for host and guest. This required some changes to arch/powerpc code, so I talked with Michael Ellerman and he created a topic branch with this patchset, which I merged into kvm-ppc-next and which Michael will pull into his tree. Michael also put in some patches from Nick Piggin which fix bugs in the interrupt vector code in relocatable kernels when coming from a KVM guest. Other notable changes include: * Add the ability to change the size of the hashed page table, from David Gibson. * XICS (interrupt controller) emulation fixes and improvements, from Li Zhong. * Bug fixes from myself and Thomas Huth. These patches define some new KVM capabilities and ioctls, but there should be no conflicts with anything else currently upstream, as far as I am aware. Thanks, Paul. The following changes since commit a17f32270af1e1054bbc8858b0f27226a2c859ba: kvm: x86: Expose Intel VPOPCNTDQ feature to guest (2017-01-17 17:55:18 +0100) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc kvm-ppc-next for you to fetch changes up to 050f23390f6bdbfa7dd2800884d32490489851b7: KVM: PPC: Book3S HV: Advertise availablity of HPT resizing on KVM HV (2017-01-31 22:00:07 +1100) ---------------------------------------------------------------- David Gibson (11): Documentation: Correct duplicate section number in kvm/api.txt KVM: PPC: Book3S HV: HPT resizing documentation and reserved numbers KVM: PPC: Book3S HV: Rename kvm_alloc_hpt() for clarity KVM: PPC: Book3S HV: Gather HPT related variables into sub-structure KVM: PPC: Book3S HV: Don't store values derivable from HPT order KVM: PPC: Book3S HV: Split HPT allocation from activation KVM: PPC: Book3S HV: Allow KVM_PPC_ALLOCATE_HTAB ioctl() to change HPT size KVM: PPC: Book3S HV: Create kvmppc_unmap_hpte_helper() KVM: PPC: Book3S HV: Outline of KVM-HV HPT resizing implementation KVM: PPC: Book3S HV: KVM-HV HPT resizing implementation KVM: PPC: Book3S HV: Advertise availablity of HPT resizing on KVM HV Li Zhong (5): KVM: PPC: Book 3S: XICS cleanup: remove XICS_RM_REJECT KVM: PPC: Book 3S: XICS: correct the real mode ICP rejecting counter KVM: PPC: Book 3S: XICS: Fix potential issue with duplicate IRQ resends KVM: PPC: Book 3S: XICS: Implement ICS P/Q states KVM: PPC: Book 3S: XICS: Don't lock twice when checking for resend Nicholas Piggin (3): KVM: PPC: Book3S: Change interrupt call to reduce scratch space use on HV KVM: PPC: Book3S: Move 64-bit KVM interrupt handler out from alt section KVM: PPC: Book3S: 64-bit CONFIG_RELOCATABLE support for interrupts Paul Mackerras (23): KVM: PPC: Book3S HV: Don't try to signal cpu -1 KVM: PPC: Book3S HV: Fix H_PROD to actually wake the target vcpu powerpc/64: Don't try to use radix MMU under a hypervisor powerpc/pseries: Fixes for the "ibm,architecture-vec-5" options powerpc/64: Enable use of radix MMU under hypervisor on POWER9 powerpc/64: More definitions for POWER9 powerpc/64: Export pgtable_cache and pgtable_cache_add for KVM powerpc/64: Make type of partition table flush depend on partition type powerpc/64: Allow for relocation-on interrupts from guest to host KVM: PPC: Book3S HV: Add userspace interfaces for POWER9 MMU KVM: PPC: Book3S HV: Set process table for HPT guests on POWER9 KVM: PPC: Book3S HV: Use ASDR for HPT guests on POWER9 KVM: PPC: Book3S HV: Add basic infrastructure for radix guests KVM: PPC: Book3S HV: Modify guest entry/exit paths to handle radix guests KVM: PPC: Book3S HV: Page table construction and page faults for radix guests KVM: PPC: Book3S HV: MMU notifier callbacks for radix guests KVM: PPC: Book3S HV: Implement dirty page logging for radix guests KVM: PPC: Book3S HV: Make HPT-specific hypercalls return error in radix mode KVM: PPC: Book3S HV: Invalidate TLB on radix guest vcpu movement KVM: PPC: Book3S HV: Allow guest exit path to have MMU on KVM: PPC: Book3S HV: Invalidate ERAT on guest entry/exit for POWER9 DD1 KVM: PPC: Book3S HV: Enable radix guest support Merge remote-tracking branch 'remotes/powerpc/topic/ppc-kvm' into kvm-ppc-next Thomas Huth (1): KVM: PPC: Book3S PR: Refactor program interrupt related code into separate function Documentation/virtual/kvm/api.txt | 194 +++++++- arch/powerpc/include/asm/book3s/64/mmu.h | 18 +- arch/powerpc/include/asm/exception-64s.h | 75 ++- arch/powerpc/include/asm/head-64.h | 2 +- arch/powerpc/include/asm/hvcall.h | 11 + arch/powerpc/include/asm/kvm_book3s.h | 26 +- arch/powerpc/include/asm/kvm_book3s_64.h | 22 + arch/powerpc/include/asm/kvm_host.h | 27 +- arch/powerpc/include/asm/kvm_ppc.h | 17 +- arch/powerpc/include/asm/prom.h | 17 +- arch/powerpc/include/asm/reg.h | 4 + arch/powerpc/include/uapi/asm/kvm.h | 22 + arch/powerpc/kernel/asm-offsets.c | 2 + arch/powerpc/kernel/exceptions-64s.S | 61 +-- arch/powerpc/kernel/prom_init.c | 18 +- arch/powerpc/kvm/Makefile | 3 +- arch/powerpc/kvm/book3s.c | 1 + arch/powerpc/kvm/book3s_64_mmu_hv.c | 734 +++++++++++++++++++++++------- arch/powerpc/kvm/book3s_64_mmu_radix.c | 716 +++++++++++++++++++++++++++++ arch/powerpc/kvm/book3s_hv.c | 268 +++++++++-- arch/powerpc/kvm/book3s_hv_builtin.c | 46 +- arch/powerpc/kvm/book3s_hv_rm_mmu.c | 87 ++-- arch/powerpc/kvm/book3s_hv_rm_xics.c | 146 +++--- arch/powerpc/kvm/book3s_hv_rmhandlers.S | 154 +++++-- arch/powerpc/kvm/book3s_pr.c | 130 +++--- arch/powerpc/kvm/book3s_segment.S | 32 +- arch/powerpc/kvm/book3s_xics.c | 192 ++++---- arch/powerpc/kvm/book3s_xics.h | 7 +- arch/powerpc/kvm/powerpc.c | 35 ++ arch/powerpc/mm/init-common.c | 3 +- arch/powerpc/mm/init_64.c | 35 ++ arch/powerpc/mm/pgtable-radix.c | 2 + arch/powerpc/mm/pgtable_64.c | 16 +- arch/powerpc/platforms/pseries/firmware.c | 2 +- arch/powerpc/platforms/pseries/lpar.c | 29 ++ include/uapi/linux/kvm.h | 17 + 36 files changed, 2608 insertions(+), 563 deletions(-) create mode 100644 arch/powerpc/kvm/book3s_64_mmu_radix.c