Patchwork [GIT,PULL] KVM changes for 5.1 merge window

login
register
mail settings
Submitter Paolo Bonzini
Date March 15, 2019, 9:07 p.m.
Message ID <1552684062-8119-1-git-send-email-pbonzini@redhat.com>
Download mbox
Permalink /patch/749989/
State New
Headers show

Pull-request

https://git.kernel.org/pub/scm/virt/kvm/kvm.git tags/for-linus

Comments

Paolo Bonzini - March 15, 2019, 9:07 p.m.
Linus,

The following changes since commit c3c7470c75566a077c8dc71dcf8f1948b8ddfab4:

  powerpc/kvm: Save and restore host AMR/IAMR/UAMOR (2019-02-22 13:41:13 +1100)

are available in the git repository at:

  https://git.kernel.org/pub/scm/virt/kvm/kvm.git tags/for-linus

for you to fetch changes up to 4a605bc08e98381d8df61c30a4acb2eac15eb7da:

  kvm: vmx: fix formatting of a comment (2019-03-15 19:24:34 +0100)

A very late pull request due to some ugly factors that complicated this
merge window: a late discovery of a race condition, that disappeared for
me right after I started looking at it; a bunch of fixes for old bugs
that came in right during the merge window---I initially wanted to
sneak them in but ultimately chose to delay them to -rc2; and just life
being busy.

You'll see a lot of reverts in the commit list, but most of them
are really just dropping old code that we decided was a premature
optimization.  However, the last revert on top is actually what fixes
the above-mentioned race condition.

For completeness, the following patches are *not* in linux-next:

      Revert "KVM/MMU: Flush tlb directly in the kvm_zap_gfn_range()"
      kvm: vmx: fix formatting of a comment
      MAINTAINERS: Add KVM selftests to existing KVM entry
      KVM: doc: Document the life cycle of a VM and its resources

I know this isn't kosher, but it should be safe enough in this case.

On the good side, conflicts are few and very easily solved.  There is
a slightly strange one in arch/x86/kvm/vmx/vmx.h (pi_set_sn) where this
pull request should win.

Thanks,

Paolo
----------------------------------------------------------------
ARM: some cleanups, direct physical timer assignment, cache sanitization
for 32-bit guests

s390: interrupt cleanup, introduction of the Guest Information Block,
preparation for processor subfunctions in cpu models

PPC: bug fixes and improvements, especially related to machine checks
and protection keys

x86: many, many cleanups, including removing a bunch of MMU code for
unnecessary optimizations; plus AVIC fixes.

Generic: memcg accounting

----------------------------------------------------------------

Alexey Kardashevskiy (2):
      KVM: PPC: Release all hardware TCE tables attached to a group
      KVM: PPC: Book3S: Improve KVM reference counting

Andre Przywara (2):
      clocksource/arm_arch_timer: Store physical timer IRQ number for KVM on VHE
      KVM: arm/arm64: consolidate arch timer trap handlers

Ard Biesheuvel (2):
      arm64: KVM: Expose sanitised cache type register to guest
      arm64: KVM: Describe data or unified caches as having 1 set and 1 way

Ben Gardon (5):
      kvm: Add memcg accounting to KVM allocations
      kvm: x86: Add memcg accounting to KVM allocations
      kvm: svm: Add memcg accounting to KVM allocations
      kvm: vmx: Add memcg accounting to KVM allocations
      Revert "KVM/MMU: Flush tlb directly in the kvm_zap_gfn_range()"

Christian Borntraeger (2):
      KVM: s390: implement subfunction processor calls
      KVM: s390: add debug logging for cpu model subfunctions

Christoffer Dall (6):
      KVM: arm/arm64: Factor out VMID into struct kvm_vmid
      KVM: arm/arm64: Simplify bg_timer programming
      KVM: arm/arm64: timer: Rework data structures for multiple timers
      KVM: arm/arm64: arch_timer: Assign the phys timer on VHE systems
      KVM: arm/arm64: Rework the timer code to use a timer_map
      KVM: arm/arm64: Move kvm_is_write_fault to header file

Colin Ian King (1):
      KVM: arm/arm64: fix spelling mistake: "auxilary" -> "auxiliary"

Dave Martin (1):
      arm64: KVM: Fix architecturally invalid reset value for FPEXC32_EL2

Gustavo A. R. Silva (1):
      kvm: Use struct_size() in kmalloc()

Jordan Niethe (1):
      KVM: PPC: Book3S HV: Fix build failure without IOMMU support

Kai Huang (1):
      kvm, x86, mmu: Use kernel generic dynamic physical address mask

Lan Tianyu (1):
      Revert "KVM: Eliminate extra function calls in kvm_get_dirty_log_protect()"

Leo Yan (1):
      KVM: Minor cleanups for kvm_main.c

Liu Jingqi (2):
      KVM: x86: expose MOVDIRI CPU feature into VM.
      KVM: x86: expose MOVDIR64B CPU feature into VM.

Luwei Kang (1):
      KVM: x86: Sync the pending Posted-Interrupts

Marc Zyngier (9):
      arm/arm64: KVM: Introduce kvm_call_hyp_ret()
      arm64: KVM: Allow for direct call of HYP functions when using VHE
      arm64: KVM: Drop VHE-specific HYP call stub
      ARM: KVM: Teach some form of type-safety to kvm_call_hyp
      arm/arm64: KVM: Statically configure the host's view of MPIDR
      KVM: arm64: Fix ICH_ELRSR_EL2 sysreg naming
      KVM: arm64: Reuse sys_reg() macro when searching the trap table
      KVM: arm/arm64: arch_timer: Mark physical interrupt active when a virtual interrupt is pending
      KVM: arm/arm64: Update MAINTAINERS entries

Marcelo Tosatti (1):
      x86: kvmguest: use TSC clocksource if invariant TSC is exposed

Masahiro Yamada (4):
      KVM: PPC: Remove -I. header search paths
      KVM: arm/arm64: Fix TRACE_INCLUDE_PATH
      KVM: arm/arm64: Remove -I. header search paths
      KVM: arm/arm64: Prefix header search paths with $(srctree)/

Michael Mueller (16):
      KVM: s390: clarify kvm related kernel message
      KVM: s390: drop obsolete else path
      KVM: s390: make bitmap declaration consistent
      KVM: s390: move bitmap idle_mask into arch struct top level
      KVM: s390: coding style kvm_s390_gisa_init/clear()
      KVM: s390: use pending_irqs_no_gisa() where appropriate
      KVM: s390: remove kvm_s390_ from gisa static inline functions
      KVM: s390: introduce struct kvm_s390_gisa_interrupt
      s390/cio: add function chsc_sgib()
      KVM: s390: add the GIB and its related life-cyle functions
      KVM: s390: add kvm reference to struct sie_page2
      KVM: s390: add functions to (un)register GISC with GISA
      KVM: s390: kvm_s390_gisa_clear() now clears the IPM only
      KVM: s390: add gib_alert_irq_handler()
      KVM: s390: start using the GIB
      KVM: s390: fix possible null pointer dereference in pending_irqs()

Nir Weiner (3):
      KVM: grow_halt_poll_ns() should never shrink vCPU halt_poll_ns
      KVM: Expose the initial start value in grow_halt_poll_ns() as a module parameter
      KVM: Never start grow vCPU halt_poll_ns from value below halt_poll_ns_grow_start

Paolo Bonzini (10):
      selftests: kvm: add selftest for releasing VM file descriptor while in L2
      KVM: x86: cull apicv code when userspace irqchip is requested
      KVM: nVMX: remove useless is_protmode check
      KVM: x86: cleanup freeing of nested state
      KVM: nVMX: do not start the preemption timer hrtimer unnecessarily
      Merge tag 'kvm-ppc-next-5.1-1' of git://git.kernel.org/.../paulus/powerpc into kvm-next
      Merge tag 'kvm-s390-next-5.1-1' of git://git.kernel.org/.../kvms390/linux into kvm-next
      Merge tag 'kvmarm-for-v5.1' of git://git.kernel.org/.../kvmarm/kvmarm into kvm-next
      Merge tag 'kvm-ppc-next-5.1-3' of git://git.kernel.org/.../paulus/powerpc into HEAD
      kvm: vmx: fix formatting of a comment

Paul Mackerras (4):
      KVM: PPC: Book3S PR: Add emulation for slbfee. instruction
      KVM: PPC: Book3S: Allow XICS emulation to work in nested hosts using XIVE
      Merge remote-tracking branch 'remotes/powerpc/topic/ppc-kvm' into kvm-ppc-next
      KVM: PPC: Fix compilation when KVM is not enabled

Pavel Tatashin (1):
      x86/kvmclock: set offset for kvm unstable clock

Sean Christopherson (65):
      KVM: VMX: Compare only a single byte for VMCS' "launched" in vCPU-run
      KVM: nVMX: Check a single byte for VMCS "launched" in nested early checks
      KVM: VMX: Zero out *all* general purpose registers after VM-Exit
      KVM: VMX: Modify only RSP when creating a placeholder for guest's RCX
      KVM: VMX: Save RSI to an unused output in the vCPU-run asm blob
      KVM: VMX: Manually load RDX in vCPU-run asm blob
      KVM: VMX: Let the compiler save/load RDX during vCPU-run
      KVM: nVMX: Remove a rogue "rax" clobber from nested_vmx_check_vmentry_hw()
      KVM: nVMX: Drop STACK_FRAME_NON_STANDARD from nested_vmx_check_vmentry_hw()
      KVM: nVMX: Explicitly reference the scratch reg in nested early checks
      KVM: nVMX: Capture VM-Fail to a local var in nested_vmx_check_vmentry_hw()
      KVM: nVMX: Capture VM-Fail via CC_{SET,OUT} in nested early checks
      KVM: nVMX: Reference vmx->loaded_vmcs->launched directly
      KVM: nVMX: Let the compiler select the reg for holding HOST_RSP
      KVM: nVMX: Cache host_rsp on a per-VMCS basis
      KVM: VMX: Load/save guest CR2 via C code in __vmx_vcpu_run()
      KVM: VMX: Update VMCS.HOST_RSP via helper C function
      KVM: VMX: Pass "launched" directly to the vCPU-run asm blob
      KVM: VMX: Invert the ordering of saving guest/host scratch reg at VM-Enter
      KVM: VMX: Don't save guest registers after VM-Fail
      KVM: VMX: Use vcpu->arch.regs directly when saving/loading guest state
      KVM: x86: Explicitly #define the VCPU_REGS_* indices
      KVM: VMX: Use #defines in place of immediates in VM-Enter inline asm
      KVM: VMX: Create a stack frame in vCPU-run
      KVM: VMX: Move vCPU-run code to a proper assembly routine
      KVM: VMX: Fold __vmx_vcpu_run() back into vmx_vcpu_run()
      KVM: VMX: Rename ____vmx_vcpu_run() to __vmx_vcpu_run()
      KVM: VMX: Use RAX as the scratch register during vCPU-run
      KVM: VMX: Pass @launched to the vCPU-run asm via standard ABI regs
      KVM: VMX: Return VM-Fail from vCPU-run assembly via standard ABI reg
      KVM: VMX: Preserve callee-save registers in vCPU-run asm sub-routine
      KVM: VMX: Call vCPU-run asm sub-routine from C and remove clobbering
      KVM: VMX: Reorder clearing of registers in the vCPU-run assembly flow
      KVM: nVMX: Sign extend displacements of VMX instr's mem operands
      KVM: nVMX: Apply addr size mask to effective address for VMX instructions
      KVM: nVMX: Ignore limit checks on VMX instructions using flat segments
      KVM: Call kvm_arch_memslots_updated() before updating memslots
      KVM: x86/mmu: Detect MMIO generation wrap in any address space
      KVM: x86/mmu: Do not cache MMIO accesses while memslots are in flux
      KVM: Explicitly define the "memslot update in-progress" bit
      KVM: x86: Use a u64 when passing the MMIO gen around
      KVM: x86: Refactor the MMIO SPTE generation handling
      KVM: Remove the hack to trigger memslot generation wraparound
      KVM: Move the memslot update in-progress flag to bit 63
      KVM: x86/mmu: Move slot_level_*() helper functions up a few lines
      KVM: x86/mmu: Split remote_flush+zap case out of kvm_mmu_flush_or_zap()
      KVM: x86/mmu: Zap only the relevant pages when removing a memslot
      Revert "KVM: MMU: document fast invalidate all pages"
      Revert "KVM: MMU: drop kvm_mmu_zap_mmio_sptes"
      KVM: x86/mmu: Voluntarily reschedule as needed when zapping MMIO sptes
      KVM: x86/mmu: Remove is_obsolete() call
      Revert "KVM: MMU: reclaim the zapped-obsolete page first"
      Revert "KVM: MMU: collapse TLB flushes when zap all pages"
      Revert "KVM: MMU: zap pages in batch"
      Revert "KVM: MMU: add tracepoint for kvm_mmu_invalidate_all_pages"
      Revert "KVM: MMU: show mmu_valid_gen in shadow page related tracepoints"
      Revert "KVM: x86: use the fast way to invalidate all pages"
      KVM: x86/mmu: skip over invalid root pages when zapping all sptes
      KVM: x86/mmu: Voluntarily reschedule as needed when zapping all sptes
      Revert "KVM: MMU: fast invalidate all pages"
      KVM: x86/mmu: Differentiate between nr zapped and list unstable
      KVM: x86/mmu: WARN if zapping a MMIO spte results in zapping children
      KVM: x86/mmu: Consolidate kvm_mmu_zap_all() and kvm_mmu_zap_mmio_sptes()
      MAINTAINERS: Add KVM selftests to existing KVM entry
      KVM: doc: Document the life cycle of a VM and its resources

Shaokun Zhang (2):
      KVM: arm/arm64: Remove unused gpa_end variable
      KVM: arm/arm64: Remove unused timer variable

Suraj Jitindar Singh (3):
      KVM: PPC: Book3S HV: Optimise mmio emulation for devices on FAST_MMIO_BUS
      KVM: PPC: Book3S HV: Add KVM stat largepages_[2M/1G]
      KVM: PPC: Book3S: Add count cache flush parameters to kvmppc_get_cpu_char()

Suthikulpanit, Suravee (2):
      svm: Fix AVIC DFR and LDR handling
      svm: Fix improper check when deactivate AVIC

Yu Zhang (1):
      kvm: vmx: Fix typos in vmentry/vmexit control setting

Zenghui Yu (1):
      KVM: arm64: Fix comment for KVM_PHYS_SHIFT

wangbo (1):
      KVM: PPC: Book3S HV: Replace kmalloc_node+memset with kzalloc_node

 Documentation/virtual/kvm/api.txt                  |  17 +
 Documentation/virtual/kvm/halt-polling.txt         |  37 +-
 Documentation/virtual/kvm/mmu.txt                  |  41 +-
 MAINTAINERS                                        |  19 +-
 arch/arm/include/asm/arch_gicv3.h                  |   4 +-
 arch/arm/include/asm/kvm_emulate.h                 |   8 +
 arch/arm/include/asm/kvm_host.h                    |  53 +-
 arch/arm/include/asm/kvm_hyp.h                     |   4 +
 arch/arm/include/asm/kvm_mmu.h                     |   9 +-
 arch/arm/kvm/Makefile                              |   5 +-
 arch/arm/kvm/coproc.c                              |  23 +-
 arch/arm/kvm/hyp/cp15-sr.c                         |   1 -
 arch/arm/kvm/hyp/hyp-entry.S                       |   2 +-
 arch/arm/kvm/hyp/switch.c                          |   2 +-
 arch/arm/kvm/hyp/tlb.c                             |   4 +-
 arch/arm/kvm/interrupts.S                          |   4 +-
 arch/arm64/include/asm/kvm_emulate.h               |  12 +
 arch/arm64/include/asm/kvm_host.h                  |  48 +-
 arch/arm64/include/asm/kvm_hyp.h                   |   3 +-
 arch/arm64/include/asm/kvm_mmu.h                   |  13 +-
 arch/arm64/include/asm/sysreg.h                    |   7 +-
 arch/arm64/kvm/Makefile                            |   4 +-
 arch/arm64/kvm/debug.c                             |   2 +-
 arch/arm64/kvm/hyp.S                               |   3 -
 arch/arm64/kvm/hyp/hyp-entry.S                     |  12 -
 arch/arm64/kvm/hyp/sysreg-sr.c                     |   1 -
 arch/arm64/kvm/sys_regs.c                          | 168 ++++--
 arch/mips/include/asm/kvm_host.h                   |   2 +-
 arch/powerpc/include/asm/kvm_host.h                |   5 +-
 arch/powerpc/include/asm/kvm_ppc.h                 |  14 +
 arch/powerpc/include/uapi/asm/kvm.h                |   2 +
 arch/powerpc/kvm/book3s.c                          |  13 +-
 arch/powerpc/kvm/book3s_32_mmu.c                   |   1 +
 arch/powerpc/kvm/book3s_64_mmu.c                   |  14 +
 arch/powerpc/kvm/book3s_64_mmu_hv.c                |  18 +
 arch/powerpc/kvm/book3s_64_mmu_radix.c             |  15 +-
 arch/powerpc/kvm/book3s_64_vio.c                   |   8 +-
 arch/powerpc/kvm/book3s_emulate.c                  |  18 +
 arch/powerpc/kvm/book3s_hv.c                       |  33 +-
 arch/powerpc/kvm/book3s_hv_builtin.c               |  14 +-
 arch/powerpc/kvm/book3s_hv_rm_xics.c               |   7 +
 arch/powerpc/kvm/book3s_hv_rmhandlers.S            |  10 +
 arch/powerpc/kvm/book3s_rtas.c                     |   8 +-
 arch/powerpc/kvm/powerpc.c                         |  22 +-
 arch/s390/include/asm/cio.h                        |   1 +
 arch/s390/include/asm/irq.h                        |   1 +
 arch/s390/include/asm/isc.h                        |   1 +
 arch/s390/include/asm/kvm_host.h                   |  39 +-
 arch/s390/kernel/irq.c                             |   1 +
 arch/s390/kvm/interrupt.c                          | 431 +++++++++++++--
 arch/s390/kvm/kvm-s390.c                           | 190 ++++++-
 arch/s390/kvm/kvm-s390.h                           |   4 +-
 arch/x86/include/asm/kvm_host.h                    |  42 +-
 arch/x86/include/asm/kvm_vcpu_regs.h               |  25 +
 arch/x86/kernel/kvmclock.c                         |  20 +-
 arch/x86/kvm/cpuid.c                               |   2 +-
 arch/x86/kvm/hyperv.c                              |   2 +-
 arch/x86/kvm/i8254.c                               |   2 +-
 arch/x86/kvm/i8259.c                               |   2 +-
 arch/x86/kvm/ioapic.c                              |   2 +-
 arch/x86/kvm/lapic.c                               |   7 +-
 arch/x86/kvm/mmu.c                                 | 466 ++++++++--------
 arch/x86/kvm/mmu.h                                 |   1 -
 arch/x86/kvm/mmutrace.h                            |  42 +-
 arch/x86/kvm/page_track.c                          |   2 +-
 arch/x86/kvm/svm.c                                 | 120 ++--
 arch/x86/kvm/vmx/nested.c                          | 129 +++--
 arch/x86/kvm/vmx/vmcs.h                            |   1 +
 arch/x86/kvm/vmx/vmenter.S                         | 167 ++++++
 arch/x86/kvm/vmx/vmx.c                             | 188 ++-----
 arch/x86/kvm/vmx/vmx.h                             |  20 +-
 arch/x86/kvm/x86.c                                 |  32 +-
 arch/x86/kvm/x86.h                                 |   7 +-
 drivers/clocksource/arm_arch_timer.c               |  11 +-
 drivers/s390/cio/chsc.c                            |  37 ++
 drivers/s390/cio/chsc.h                            |   1 +
 include/clocksource/arm_arch_timer.h               |   1 +
 include/kvm/arm_arch_timer.h                       |  68 ++-
 include/linux/kvm_host.h                           |  24 +-
 tools/testing/selftests/kvm/.gitignore             |   1 +
 tools/testing/selftests/kvm/Makefile               |   1 +
 .../kvm/x86_64/vmx_close_while_nested_test.c       |  95 ++++
 virt/kvm/arm/arch_timer.c                          | 608 +++++++++++++++------
 virt/kvm/arm/arm.c                                 |  64 +--
 virt/kvm/arm/hyp/vgic-v3-sr.c                      |   2 +-
 virt/kvm/arm/mmu.c                                 |  20 +-
 virt/kvm/arm/trace.h                               | 107 +++-
 virt/kvm/arm/vgic/vgic-v3.c                        |   4 +-
 virt/kvm/coalesced_mmio.c                          |   3 +-
 virt/kvm/eventfd.c                                 |   7 +-
 virt/kvm/irqchip.c                                 |   4 +-
 virt/kvm/kvm_main.c                                | 103 ++--
 virt/kvm/vfio.c                                    |   4 +-
 93 files changed, 2623 insertions(+), 1199 deletions(-)
pr-tracker-bot@kernel.org - March 15, 2019, 10:10 p.m.
The pull request you sent on Fri, 15 Mar 2019 22:07:42 +0100:

> https://git.kernel.org/pub/scm/virt/kvm/kvm.git tags/for-linus

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/636deed6c0bc137a7c4f4a97ae1fcf0ad75323da

Thank you!