From patchwork Mon Jun 4 01:27:43 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Mackerras X-Patchwork-Id: 924790 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=kvm-ppc-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=ozlabs.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=ozlabs.org header.i=@ozlabs.org header.b="v6aQAuqz"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 40zckd0kSzz9s0W for ; Mon, 4 Jun 2018 11:27:53 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751759AbeFDB1v (ORCPT ); Sun, 3 Jun 2018 21:27:51 -0400 Received: from ozlabs.org ([203.11.71.1]:58949 "EHLO ozlabs.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751424AbeFDB1v (ORCPT ); Sun, 3 Jun 2018 21:27:51 -0400 Received: by ozlabs.org (Postfix, from userid 1003) id 40zckY27fbz9s02; Mon, 4 Jun 2018 11:27:49 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ozlabs.org; s=201707; t=1528075669; bh=D8xusVPW8ZX7/afS6C3zaYm3xcqT5lAkoHmMhkKVx+w=; h=Date:From:To:Cc:Subject:From; b=v6aQAuqzJaEznNHOj9KQEMn1orym9cIgoDHi5pgSRKYXoHCjuqTsW8JTXULDZcq6R x+9N1R66u+e4vts1eh+naVH3D2gvhU6od6wTj4bErlhdq6SD8mIejQV9dOBchLhU8t lHVRLOk2LxYOnQ0DqRAY8H0HeasVLdzWl4mK+8RIQ4OHPeG3G/opj0VyqwET99auaY 0uAnun8hIdfKnb09TQAJpbJ9+QIHv87Ze1nJNdBCmBHbhaaDQZoLnO8HrbI3J39S3k uortbw0HxJlp3dntARMXWksaLuurcrPCo2LpDtniov4CysMU6WFOZYOk/vpfYkMYlf aHQQAqr9MqZEQ== Date: Mon, 4 Jun 2018 11:27:43 +1000 From: Paul Mackerras To: Paolo Bonzini , Radim =?utf-8?b?S3LEjW3DocWZ?= , kvm@vger.kernel.org Cc: kvm-ppc@vger.kernel.org Subject: [GIT PULL] Please pull my kvm-ppc-next-4.18-1 tag Message-ID: <20180604012743.GA3843@fergus.ozlabs.ibm.com> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.9.4 (2018-02-28) Sender: kvm-ppc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm-ppc@vger.kernel.org Paolo or Radim, Please do a pull from my kvm-ppc-next-4.18-1 tag to get a PPC KVM update for 4.18. This is a reasonably large update; it includes two series from Simon Guo, to reimplement the MMIO instruction emulation and to add transactional memory support to PR KVM, plus a series from Nick Piggin to improve radix page table handing, plus quite a few other patches. I have merged in Michael Ellerman's topic/ppc-kvm branch to get some commits that affect arch/powerpc and were needed as prerequisites for the KVM patches here. Thanks, Paul. The following changes since commit df158189dbcc2e0ee29dc4b917d45ee5bf25a35e: KVM: PPC: Book 3S HV: Do ptesync in radix guest exit path (2018-05-17 15:17:13 +1000) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc tags/kvm-ppc-next-4.18-1 for you to fetch changes up to deeb879de955f4e04be3d43c33bc311087f063bf: KVM: PPC: Book3S PR: Enable kvmppc_get/set_one_reg_pr() for HTM registers (2018-06-01 10:31:08 +1000) ---------------------------------------------------------------- PPC KVM update for 4.18 * Reimplement MMIO instruction emulation using analyse_instr, which avoids duplication of the instruction decoder and reduces code size. * PR KVM improvements: implement support for transactional memory, and enable PR KVM on POWER9 guests running in HPT mode. * Radix page table improvements for POWER9. * Improvements and bugfixes for IOMMU (TCE) support. * Other miscellaneous fixes. ---------------------------------------------------------------- Alexey Kardashevskiy (3): KVM: PPC: Book3S: Use correct page shift in H_STUFF_TCE KVM: PPC: Book3S: Allow backing bigger guest IOMMU pages with smaller physical pages KVM: PPC: Book3S: Check KVM_CREATE_SPAPR_TCE_64 parameters Aneesh Kumar K.V (1): powerpc/kvm: Switch kvm pmd allocator to custom allocator Mathieu Malaterre (1): powerpc/kvm: Prefer fault_in_pages_readable function Nicholas Piggin (10): powerpc/mm/radix: implement LPID based TLB flushes to be used by KVM KVM: PPC: Book3S HV: Lockless tlbie for HPT hcalls KVM: PPC: Book3S HV: Use a helper to unmap ptes in the radix fault path KVM: PPC: Book3S HV: Recursively unmap all page table entries when unmapping KVM: PPC: Book3S HV: Make radix use the Linux translation flush functions for partition scope KVM: PPC: Book3S HV: Make radix handle process scoped LPID flush in C, with relocation on KVM: PPC: Book3S HV: radix: Refine IO region partition scope attributes KVM: PPC: Book3S HV: radix: Do not clear partition PTE when RC or write bits do not match KVM: PPC: Book3S HV: Fix kvmppc_bad_host_intr for real mode interrupts KVM: PPC: Book3S HV: Send kvmppc_bad_interrupt NMIs to Linux handlers Paul Mackerras (8): KVM: PPC: Book3S HV: Add 'online' register to ONE_REG interface KVM: PPC: Book3S HV: Set RWMR on POWER8 so PURR/SPURR count correctly KVM: PPC: Book3S HV: Fix inaccurate comment Merge remote-tracking branch 'remotes/powerpc/topic/ppc-kvm' into kvm-ppc-next KVM: PPC: Book3S PR: Enable use on POWER9 inside HPT-mode guests KVM: PPC: Book3S PR: Allow KVM_PPC_CONFIGURE_V3_MMU to succeed KVM: PPC: Book3S HV: Factor fake-suspend handling out of kvmppc_save/restore_tm Merge remote-tracking branch 'remotes/powerpc/topic/ppc-kvm' into kvm-ppc-next Simon Guo (39): KVM: PPC: Add pt_regs into kvm_vcpu_arch and move vcpu->arch.gpr[] into it KVM: PPC: Move nip/ctr/lr/xer registers to pt_regs in kvm_vcpu_arch KVM: PPC: Fix a mmio_host_swabbed uninitialized usage issue KVM: PPC: Add KVMPPC_VSX_COPY_WORD_LOAD_DUMP type support for mmio emulation KVM: PPC: Reimplement non-SIMD LOAD/STORE instruction mmio emulation with analyse_instr() input KVM: PPC: Add giveup_ext() hook to PPC KVM ops KVM: PPC: Reimplement LOAD_FP/STORE_FP instruction mmio emulation with analyse_instr() input KVM: PPC: Reimplement LOAD_VSX/STORE_VSX instruction mmio emulation with analyse_instr() input KVM: PPC: Expand mmio_vsx_copy_type to cover VMX load/store element types KVM: PPC: Reimplement LOAD_VMX/STORE_VMX instruction mmio emulation with analyse_instr() input powerpc: Export msr_check_and_set() to modules powerpc/reg: Add TEXASR related macros powerpc: Export tm_enable()/tm_disable/tm_abort() APIs KVM: PPC: Book3S PR: Move kvmppc_save_tm/kvmppc_restore_tm to separate file KVM: PPC: Book3S PR: Add guest MSR parameter for kvmppc_save_tm()/kvmppc_restore_tm() KVM: PPC: Book3S PR: Turn on FP/VSX/VMX MSR bits in kvmppc_save_tm() KVM: PPC: Book3S PR: Add C function wrapper for _kvmppc_save/restore_tm() KVM: PPC: Book3S PR: Transition to Suspended state when injecting interrupt KVM: PPC: Book3S PR: Pass through MSR TM and TS bits to shadow_msr KVM: PPC: Book3S PR: Sync TM bits to shadow msr for problem state guest KVM: PPC: Book3S PR: Implement RFID TM behavior to suppress change from S0 to N0 KVM: PPC: Book3S PR: Avoid changing TS bits when exiting guest KVM: PPC: Book3S PR: Add new kvmppc_copyto/from_vcpu_tm APIs KVM: PPC: Book3S PR: Add kvmppc_save/restore_tm_sprs() APIs KVM: PPC: Book3S PR: Add transaction memory save/restore skeleton KVM: PPC: Book3S PR: Add math support for PR KVM HTM KVM: PPC: Book3S PR: Emulate mtspr/mfspr using active TM SPRs KVM: PPC: Book3S PR: Always fail transactions in guest privileged state KVM: PPC: Book3S PR: Restore NV regs after emulating mfspr from TM SPRs KVM: PPC: Book3S PR: Add emulation for treclaim. KVM: PPC: Book3S PR: Add emulation for trechkpt. KVM: PPC: Book3S PR: Add emulation for tabort. in privileged state KVM: PPC: Book3S PR: Add guard code to prevent returning to guest with PR=0 and Transactional state KVM: PPC: Book3S PR: Support TAR handling for PR KVM HTM KVM: PPC: Book3S PR: Enable HTM for PR KVM for KVM_CHECK_EXTENSION ioctl KVM: PPC: Move vcpu_load/vcpu_put down to each ioctl case in kvm_arch_vcpu_ioctl KVM: PPC: Remove load/put vcpu for KVM_GET/SET_ONE_REG ioctl KVM: PPC: Book3S: Remove load/put vcpu for KVM_GET_REGS/KVM_SET_REGS KVM: PPC: Book3S PR: Enable kvmppc_get/set_one_reg_pr() for HTM registers Souptick Joarder (1): KVM: PPC: Book3S: Change return type to vm_fault_t arch/powerpc/include/asm/asm-prototypes.h | 9 + .../powerpc/include/asm/book3s/64/tlbflush-radix.h | 7 + arch/powerpc/include/asm/kvm_book3s.h | 37 +- arch/powerpc/include/asm/kvm_book3s_64.h | 20 +- arch/powerpc/include/asm/kvm_booke.h | 20 +- arch/powerpc/include/asm/kvm_host.h | 21 +- arch/powerpc/include/asm/kvm_ppc.h | 17 +- arch/powerpc/include/asm/reg.h | 33 +- arch/powerpc/include/asm/tm.h | 2 - arch/powerpc/include/uapi/asm/kvm.h | 1 + arch/powerpc/kernel/asm-offsets.c | 18 +- arch/powerpc/kernel/kvm.c | 4 +- arch/powerpc/kernel/process.c | 1 + arch/powerpc/kernel/tm.S | 12 + arch/powerpc/kvm/Makefile | 3 + arch/powerpc/kvm/book3s.c | 10 +- arch/powerpc/kvm/book3s.h | 6 + arch/powerpc/kvm/book3s_32_mmu.c | 2 +- arch/powerpc/kvm/book3s_64_mmu.c | 11 +- arch/powerpc/kvm/book3s_64_mmu_hv.c | 3 + arch/powerpc/kvm/book3s_64_mmu_radix.c | 378 +++++++---- arch/powerpc/kvm/book3s_64_vio.c | 71 +- arch/powerpc/kvm/book3s_64_vio_hv.c | 54 +- arch/powerpc/kvm/book3s_emulate.c | 369 +++++++++- arch/powerpc/kvm/book3s_hv.c | 97 ++- arch/powerpc/kvm/book3s_hv_builtin.c | 21 +- arch/powerpc/kvm/book3s_hv_interrupts.S | 2 +- arch/powerpc/kvm/book3s_hv_rm_mmu.c | 36 +- arch/powerpc/kvm/book3s_hv_rm_xics.c | 2 +- arch/powerpc/kvm/book3s_hv_rmhandlers.S | 318 +++------ arch/powerpc/kvm/book3s_hv_tm.c | 10 +- arch/powerpc/kvm/book3s_hv_tm_builtin.c | 10 +- arch/powerpc/kvm/book3s_pr.c | 437 ++++++++++-- arch/powerpc/kvm/book3s_segment.S | 13 + arch/powerpc/kvm/book3s_xive_template.c | 4 +- arch/powerpc/kvm/booke.c | 41 +- arch/powerpc/kvm/booke_emulate.c | 6 +- arch/powerpc/kvm/e500_emulate.c | 6 +- arch/powerpc/kvm/e500_mmu.c | 2 +- arch/powerpc/kvm/e500_mmu_host.c | 8 +- arch/powerpc/kvm/emulate_loadstore.c | 752 ++++++--------------- arch/powerpc/kvm/powerpc.c | 311 +++++++-- arch/powerpc/kvm/tm.S | 384 +++++++++++ arch/powerpc/mm/hash_utils_64.c | 1 + arch/powerpc/mm/tlb-radix.c | 207 ++++++ arch/powerpc/platforms/powernv/copy-paste.h | 3 +- 46 files changed, 2571 insertions(+), 1209 deletions(-) create mode 100644 arch/powerpc/kvm/tm.S --- To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html