[GIT PULL] First batch of KVM changes for Linux 5.3

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Linus,

The following changes since commit 4b972a01a7da614b4796475f933094751a295a2f:

  Linux 5.2-rc6 (2019-06-22 16:01:36 -0700)

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 a45ff5994c9cde41af627c46abb9f32beae68943:

  Merge tag 'kvm-arm-for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD (2019-07-11 15:14:16 +0200)

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

ARM:
* support for chained PMU counters in guests
* improved SError handling
* handle Neoverse N1 erratum #1349291
* allow side-channel mitigation status to be migrated
* standardise most AArch64 system register accesses to msr_s/mrs_s
* fix host MPIDR corruption on 32bit
* selftests ckleanups

x86:
* PMU event {white,black}listing
* ability for the guest to disable host-side interrupt polling
* fixes for enlightened VMCS (Hyper-V pv nested virtualization),
* new hypercall to yield to IPI target
* support for passing cstate MSRs through to the guest
* lots of cleanups and optimizations

Generic:
* Some txt->rST conversions for the documentation

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

There are two trivial conflicts in ARM64 docs and includes.

Andre Przywara (3):
      arm64: KVM: Propagate full Spectre v2 workaround state to KVM guests
      KVM: arm/arm64: Add save/restore support for firmware workaround state
      KVM: doc: Add API documentation on the KVM_REG_ARM_WORKAROUNDS register

Andrew Jones (3):
      kvm: selftests: ucall improvements
      kvm: selftests: introduce aarch64_vcpu_setup
      kvm: selftests: introduce aarch64_vcpu_add_default

Andrew Murray (5):
      KVM: arm/arm64: Rename kvm_pmu_{enable/disable}_counter functions
      KVM: arm/arm64: Extract duplicated code to own function
      KVM: arm/arm64: Re-create event when setting counter value
      KVM: arm/arm64: Remove pmc->bitmask
      KVM: arm/arm64: Support chained PMU counters

Dave Martin (1):
      KVM: arm64: Migrate _elx sysreg accessors to msr_s/mrs_s

Eric Hankland (1):
      KVM: x86: PMU Event Filter

Eugene Korenevsky (2):
      kvm: vmx: fix limit checking in get_vmx_mem_address()
      kvm: vmx: segment limit check: use access length

Gustavo A. R. Silva (1):
      KVM: irqchip: Use struct_size() in kzalloc()

James Morse (8):
      arm64: assembler: Switch ESB-instruction with a vanilla nop if !ARM64_HAS_RAS
      KVM: arm64: Abstract the size of the HYP vectors pre-amble
      KVM: arm64: Make indirect vectors preamble behaviour symmetric
      KVM: arm64: Consume pending SError as early as possible
      KVM: arm64: Defer guest entry when an asynchronous exception is pending
      arm64: Update silicon-errata.txt for Neoverse-N1 #1349291
      KVM: arm64: Re-mask SError after the one instruction window
      KVM: arm64: Skip more of the SError vaxorcism

Jan Beulich (1):
      x86/kvm/VMX: drop bad asm() clobber from nested_vmx_check_vmentry_hw()

Jim Mattson (2):
      kvm: nVMX: Remove unnecessary sync_roots from handle_invept
      kvm: x86: Pass through AMD_STIBP_ALWAYS_ON in GET_SUPPORTED_CPUID

Junaid Shahid (2):
      kvm: Convert kvm_lock to a mutex
      kvm: x86: Do not release the page inside mmu_set_spte()

Kai Huang (2):
      kvm: x86: Move kvm_set_mmio_spte_mask() from x86.c to mmu.c
      kvm: x86: Fix reserved bits related calculation errors caused by MKTME

KarimAllah Ahmed (1):
      KVM: Properly check if "page" is valid in kvm_vcpu_unmap

Krish Sadhukhan (1):
      KVM nVMX: Check Host Segment Registers and Descriptor Tables on vmentry of nested guests

Like Xu (1):
      KVM: x86: Add Intel CPUID.1F cpuid emulation support

Liran Alon (1):
      KVM: x86: Use DR_TRAP_BITS instead of hard-coded 15

Luke Nowakowski-Krijger (3):
      Documentation: virtual: Convert paravirt_ops.txt to .rst
      Documentation: kvm: Convert cpuid.txt to .rst
      Documentation: virtual: Add toctree hooks

Marc Zyngier (1):
      KVM: arm/arm64: Initialise host's MPIDRs by reading the actual register

Marcelo Tosatti (1):
      kvm: x86: add host poll control msrs

Paolo Bonzini (25):
      kvm: selftests: hide vcpu_setup in processor code
      KVM: x86: clean up conditions for asynchronous page fault handling
      KVM: x86: move MSR_IA32_POWER_CTL handling to common code
      kvm: nVMX: small cleanup in handle_exception
      KVM: nVMX: Rename prepare_vmcs02_*_full to prepare_vmcs02_*_rare
      KVM: VMX: simplify vmx_prepare_switch_to_{guest,host}
      KVM: x86: introduce is_pae_paging
      KVM: nVMX: shadow pin based execution controls
      KVM: nVMX: include conditional controls in /dev/kvm KVM_GET_MSRS
      KVM: nVMX: allow setting the VMFUNC controls MSR
      KVM: nVMX: list VMX MSRs in KVM_GET_MSR_INDEX_LIST
      Documentation: kvm: document CPUID bit for MSR_KVM_POLL_CONTROL
      KVM: svm: add nrips module parameter
      KVM: cpuid: do_cpuid_ent works on a whole CPUID function
      KVM: cpuid: extract do_cpuid_7_mask and support multiple subleafs
      KVM: cpuid: set struct kvm_cpuid_entry2 flags in do_cpuid_1_ent
      KVM: cpuid: rename do_cpuid_1_ent
      KVM: cpuid: remove has_leaf_count from struct kvm_cpuid_param
      KVM: x86: make FNAME(fetch) and __direct_map more similar
      KVM: x86: remove now unneeded hugepage gfn adjustment
      KVM: x86: change kvm_mmu_page_get_gfn BUG_ON to WARN_ON
      KVM: x86: add tracepoints around __direct_map and FNAME(fetch)
      KVM: LAPIC: ARBPRI is a reserved register for x2APIC
      kvm: LAPIC: write down valid APIC registers
      Merge tag 'kvm-arm-for-5.3' of git://git.kernel.org/.../kvmarm/kvmarm into HEAD

Saar Amar (1):
      KVM: x86: Fix apic dangling pointer in vcpu

Sean Christopherson (41):
      KVM: Directly return result from kvm_arch_check_processor_compat()
      KVM: VMX: Fix handling of #MC that occurs during VM-Entry
      KVM: VMX: Read cached VM-Exit reason to detect external interrupt
      KVM: VMX: Store the host kernel's IDT base in a global variable
      KVM: x86: Move kvm_{before,after}_interrupt() calls to vendor code
      KVM: VMX: Handle NMIs, #MCs and async #PFs in common irqs-disabled fn
      KVM: nVMX: Intercept VMWRITEs to read-only shadow VMCS fields
      KVM: nVMX: Intercept VMWRITEs to GUEST_{CS,SS}_AR_BYTES
      KVM: nVMX: Track vmcs12 offsets for shadowed VMCS fields
      KVM: nVMX: Lift sync_vmcs12() out of prepare_vmcs12()
      KVM: nVMX: Use descriptive names for VMCS sync functions and flags
      KVM: nVMX: Add helpers to identify shadowed VMCS fields
      KVM: nVMX: Sync rarely accessed guest fields only when needed
      KVM: VMX: Always signal #GP on WRMSR to MSR_IA32_CR_PAT with bad value
      KVM: nVMX: Always sync GUEST_BNDCFGS when it comes from vmcs01
      KVM: nVMX: Write ENCLS-exiting bitmap once per vmcs02
      KVM: nVMX: Don't rewrite GUEST_PML_INDEX during nested VM-Entry
      KVM: nVMX: Don't "put" vCPU or host state when switching VMCS
      KVM: nVMX: Don't reread VMCS-agnostic state when switching VMCS
      KVM: nVMX: Don't dump VMCS if virtual APIC page can't be mapped
      KVM: nVMX: Don't speculatively write virtual-APIC page address
      KVM: nVMX: Don't speculatively write APIC-access page address
      KVM: nVMX: Update vmcs12 for MSR_IA32_CR_PAT when it's written
      KVM: nVMX: Update vmcs12 for SYSENTER MSRs when they're written
      KVM: nVMX: Update vmcs12 for MSR_IA32_DEBUGCTLMSR when it's written
      KVM: nVMX: Don't update GUEST_BNDCFGS if it's clean in HV eVMCS
      KVM: nVMX: Copy PDPTRs to/from vmcs12 only when necessary
      KVM: nVMX: Use adjusted pin controls for vmcs02
      KVM: VMX: Add builder macros for shadowing controls
      KVM: VMX: Shadow VMCS pin controls
      KVM: VMX: Shadow VMCS primary execution controls
      KVM: VMX: Shadow VMCS secondary execution controls
      KVM: nVMX: Shadow VMCS controls on a per-VMCS basis
      KVM: nVMX: Don't reset VMCS controls shadow on VMCS switch
      KVM: VMX: Explicitly initialize controls shadow at VMCS allocation
      KVM: nVMX: Preserve last USE_MSR_BITMAPS when preparing vmcs02
      KVM: nVMX: Preset *DT exiting in vmcs02 when emulating UMIP
      KVM: VMX: Drop hv_timer_armed from 'struct loaded_vmcs'
      KVM: VMX: Leave preemption timer running when it's disabled
      KVM: nVMX: Stash L1's CR3 in vmcs01.GUEST_CR3 on nested entry w/o EPT
      KVM: x86: Unconditionally enable irqs in guest context

Suthikulpanit, Suravee (1):
      kvm: svm/avic: Do not send AVIC doorbell to self

Uros Bizjak (1):
      KVM: VMX: remove unneeded 'asm volatile ("")' from vmcs_write64

Vitaly Kuznetsov (3):
      KVM/nSVM: properly map nested VMCB
      x86/KVM/nVMX: don't use clean fields data on enlightened VMLAUNCH
      x86/kvm/nVMX: fix VMCLEAR when Enlightened VMCS is in use

Wanpeng Li (12):
      KVM: LAPIC: Extract adaptive tune timer advancement logic
      KVM: LAPIC: Delay trace_kvm_wait_lapic_expire tracepoint to after vmexit
      KVM: LAPIC: Optimize timer latency further
      KVM: Documentation: Add disable pause exits to KVM_CAP_X86_DISABLE_EXITS
      KVM: X86: Provide a capability to disable cstate msr read intercepts
      KVM: X86: Emulate MSR_IA32_MISC_ENABLE MWAIT bit
      KVM: VMX: check CPUID before allowing read/write of IA32_XSS
      KVM: X86: Yield to IPI target if necessary
      KVM: X86: Implement PV sched yield hypercall
      KVM: X86: Expose PV_SCHED_YIELD CPUID feature bit to guest
      KVM: LAPIC: remove the trailing newline used in the fmt parameter of TP_printk
      KVM: LAPIC: Retry tune per-vCPU timer_advance_ns if adaptive tuning goes insane

Wei Yang (3):
      kvm: x86: check kvm_apic_sw_enabled() is enough
      kvm: x86: use same convention to name kvm_lapic_{set,clear}_vector()
      kvm: x86: offset is ensure to be in range

Xiaoyao Li (1):
      kvm: x86: refine kvm_get_arch_capabilities()

Yi Wang (1):
      kvm: x86: Fix -Wmissing-prototypes warnings

 Documentation/arm64/silicon-errata.txt             |   1 +
 Documentation/virtual/index.rst                    |  18 +
 Documentation/virtual/kvm/api.txt                  |  28 +
 Documentation/virtual/kvm/arm/psci.txt             |  31 +
 Documentation/virtual/kvm/cpuid.rst                | 107 +++
 Documentation/virtual/kvm/cpuid.txt                |  83 ---
 Documentation/virtual/kvm/hypercalls.txt           |  11 +
 Documentation/virtual/kvm/index.rst                |  11 +
 Documentation/virtual/kvm/locking.txt              |   4 +-
 Documentation/virtual/kvm/msr.txt                  |   9 +
 .../virtual/{paravirt_ops.txt => paravirt_ops.rst} |  19 +-
 arch/arm/include/asm/kvm_emulate.h                 |  10 +
 arch/arm/include/asm/kvm_host.h                    |  18 +-
 arch/arm/include/asm/kvm_hyp.h                     |  13 +-
 arch/arm/include/uapi/asm/kvm.h                    |  12 +
 arch/arm64/include/asm/assembler.h                 |   4 +
 arch/arm64/include/asm/cpufeature.h                |   6 +
 arch/arm64/include/asm/kvm_asm.h                   |   6 +
 arch/arm64/include/asm/kvm_emulate.h               |  30 +-
 arch/arm64/include/asm/kvm_host.h                  |  23 +-
 arch/arm64/include/asm/kvm_hyp.h                   |  50 +-
 arch/arm64/include/asm/sysreg.h                    |  35 +-
 arch/arm64/include/uapi/asm/kvm.h                  |  10 +
 arch/arm64/kernel/cpu_errata.c                     |  23 +-
 arch/arm64/kernel/traps.c                          |   4 +
 arch/arm64/kvm/hyp/entry.S                         |  36 +-
 arch/arm64/kvm/hyp/hyp-entry.S                     |  30 +-
 arch/arm64/kvm/hyp/switch.c                        |  14 +-
 arch/arm64/kvm/hyp/sysreg-sr.c                     |  78 +--
 arch/arm64/kvm/hyp/tlb.c                           |  12 +-
 arch/arm64/kvm/hyp/vgic-v2-cpuif-proxy.c           |   2 +-
 arch/arm64/kvm/regmap.c                            |   4 +-
 arch/arm64/kvm/sys_regs.c                          |  60 +-
 arch/arm64/kvm/va_layout.c                         |   7 +-
 arch/mips/kvm/mips.c                               |   4 +-
 arch/powerpc/kvm/powerpc.c                         |   4 +-
 arch/s390/include/asm/kvm_host.h                   |   1 -
 arch/s390/kvm/kvm-s390.c                           |   9 +-
 arch/x86/include/asm/kvm_host.h                    |  11 +-
 arch/x86/include/uapi/asm/kvm.h                    |  19 +-
 arch/x86/include/uapi/asm/kvm_para.h               |   3 +
 arch/x86/include/uapi/asm/vmx.h                    |   1 -
 arch/x86/kernel/kvm.c                              |  21 +
 arch/x86/kvm/Kconfig                               |   1 +
 arch/x86/kvm/cpuid.c                               | 247 ++++---
 arch/x86/kvm/emulate.c                             |   2 +-
 arch/x86/kvm/irq.h                                 |   1 -
 arch/x86/kvm/irq_comm.c                            |   2 +-
 arch/x86/kvm/lapic.c                               | 123 ++--
 arch/x86/kvm/lapic.h                               |   8 +-
 arch/x86/kvm/mmu.c                                 | 182 +++--
 arch/x86/kvm/mmutrace.h                            |  59 ++
 arch/x86/kvm/paging_tmpl.h                         |  42 +-
 arch/x86/kvm/pmu.c                                 |  63 ++
 arch/x86/kvm/pmu.h                                 |   1 +
 arch/x86/kvm/svm.c                                 |  51 +-
 arch/x86/kvm/trace.h                               |   2 +-
 arch/x86/kvm/vmx/evmcs.c                           |  18 +
 arch/x86/kvm/vmx/evmcs.h                           |   1 +
 arch/x86/kvm/vmx/nested.c                          | 763 +++++++++++++--------
 arch/x86/kvm/vmx/nested.h                          |   4 +-
 arch/x86/kvm/vmx/ops.h                             |   1 -
 arch/x86/kvm/vmx/vmcs.h                            |  17 +-
 arch/x86/kvm/vmx/vmcs12.h                          |  57 +-
 arch/x86/kvm/vmx/vmcs_shadow_fields.h              |  79 ++-
 arch/x86/kvm/vmx/vmx.c                             | 449 ++++++------
 arch/x86/kvm/vmx/vmx.h                             | 124 ++--
 arch/x86/kvm/x86.c                                 | 229 +++++--
 arch/x86/kvm/x86.h                                 |  10 +
 include/kvm/arm_pmu.h                              |  11 +-
 include/linux/kvm_host.h                           |   5 +-
 include/uapi/linux/kvm.h                           |   7 +-
 include/uapi/linux/kvm_para.h                      |   1 +
 tools/include/uapi/linux/kvm.h                     |   4 +-
 tools/testing/selftests/kvm/dirty_log_test.c       |   3 +-
 .../selftests/kvm/include/aarch64/processor.h      |   4 +
 tools/testing/selftests/kvm/include/kvm_util.h     |   3 +-
 .../testing/selftests/kvm/lib/aarch64/processor.c  |  50 +-
 tools/testing/selftests/kvm/lib/kvm_util.c         |   9 +-
 .../testing/selftests/kvm/lib/kvm_util_internal.h  |   2 -
 tools/testing/selftests/kvm/lib/ucall.c            |  19 +-
 tools/testing/selftests/kvm/lib/x86_64/processor.c |   5 +-
 tools/testing/selftests/kvm/x86_64/evmcs_test.c    |   2 +-
 .../selftests/kvm/x86_64/kvm_create_max_vcpus.c    |   2 +-
 tools/testing/selftests/kvm/x86_64/smm_test.c      |   2 +-
 tools/testing/selftests/kvm/x86_64/state_test.c    |   2 +-
 virt/kvm/arm/arch_timer.c                          |  24 +-
 virt/kvm/arm/arm.c                                 |   7 +-
 virt/kvm/arm/pmu.c                                 | 350 ++++++++--
 virt/kvm/arm/psci.c                                | 149 +++-
 virt/kvm/irqchip.c                                 |   4 +-
 virt/kvm/kvm_main.c                                |  41 +-
 92 files changed, 2692 insertions(+), 1432 deletions(-)
 create mode 100644 Documentation/virtual/index.rst
 create mode 100644 Documentation/virtual/kvm/cpuid.rst
 delete mode 100644 Documentation/virtual/kvm/cpuid.txt
 create mode 100644 Documentation/virtual/kvm/index.rst
 rename Documentation/virtual/{paravirt_ops.txt => paravirt_ops.rst} (65%)



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux