On 01/02/2017 10:24, Paul Mackerras wrote: > 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 > Pulled, thanks. Paolo