[GIT PULL] KVM changes for 4.10 merge window
From: Paolo Bonzini
Date: Mon Dec 12 2016 - 08:14:39 EST
Linus,
The following changes since commit a25f0944ba9b1d8a6813fd6f1a86f1bd59ac25a6:
Linux 4.9-rc5 (2016-11-13 10:32:32 -0800)
are available in the git repository at:
git://git.kernel.org/pub/scm/virt/kvm/kvm.git tags/for-linus
for you to fetch changes up to f673b5b2a66332da5358def524dbfb3305c76d8c:
Merge tag 'kvm-arm-for-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD (2016-12-12 07:29:39 +0100)
----------------------------------------------------------------
Small release, the most interesting stuff is x86 nested virt improvements.
x86: userspace can now hide nested VMX features from guests; nested
VMX can now run Hyper-V in a guest; support for AVX512_4VNNIW and
AVX512_FMAPS in KVM; infrastructure support for virtual Intel GPUs.
PPC: support for KVM guests on POWER9; improved support for interrupt
polling; optimizations and cleanups.
s390: two small optimizations, more stuff is in flight and will be
in 4.11.
ARM: support for the GICv3 ITS on 32bit platforms.
----------------------------------------------------------------
Andre Przywara (1):
KVM: arm/arm64: vgic-v2: Limit ITARGETSR bits to number of VCPUs
Bandan Das (1):
kvm: x86: don't print warning messages for unimplemented msrs
Christian Borntraeger (2):
KVM: s390: handle access registers in the run ioctl not in vcpu_put/load
KVM: s390: handle floating point registers in the run ioctl not in vcpu_put/load
Christoffer Dall (1):
KVM: arm/arm64: timer: Check for properly initialized timer on init
Daniel Axtens (2):
KVM: PPC: Book3S HV: Fix sparse static warning
KVM: PPC: Book3S HV: sparse: prototypes for functions called from assembler
David Gibson (2):
KVM: PPC: Move KVM_PPC_PVINFO_FLAGS_EV_IDLE definition next to its structure
KVM: PPC: Correctly report KVM_CAP_PPC_ALLOC_HTAB
David Matlack (5):
KVM: nVMX: generate non-true VMX MSRs based on true versions
KVM: nVMX: support restore of VMX capability MSRs
KVM: nVMX: fix checks on CR{0,4} during virtual VMX operation
KVM: nVMX: generate MSR_IA32_CR{0,4}_FIXED1 from guest CPUID
KVM: nVMX: load GUEST_EFER after GUEST_CR0 during emulated VM-entry
Geliang Tang (1):
KVM: PPC: Book3S HV: Drop duplicate header asm/iommu.h
He Chen (2):
x86/cpuid: Cleanup cpuid_regs definitions
x86/cpuid: Provide get_scattered_cpuid_leaf()
Jan Dakinevich (3):
KVM: VMX: clean up declaration of VPID/EPT invalidation types
KVM: nVMX: invvpid handling improvements
KVM: nVMX: invvpid handling improvements
Jiang Biao (5):
kvm: x86: make function static to avoid compiling warning
kvm: x86: make a function in x86.c static to avoid compiling warning
kvm: x86: cpuid: remove the unnecessary variable
kvm: x86: hyperv: make function static to avoid compiling warning
kvm: x86: remove unused but set variable
Jike Song (2):
kvm/page_track: call notifiers with kvm_page_track_notifier_node
kvm/page_track: export symbols for external usage
Jim Mattson (3):
kvm: nVMX: Fetch VM_INSTRUCTION_ERROR from vmcs02 on vmx->fail
kvm: nVMX: Update MSR load counts on a VMCS switch
kvm: x86: CPUID.01H:EDX.APIC[bit 9] should mirror IA32_APIC_BASE[11]
Kyle Huey (5):
KVM: x86: Add a return value to kvm_emulate_cpuid
KVM: VMX: Reorder some skip_emulated_instruction calls
KVM: VMX: Move skip_emulated_instruction out of nested_vmx_check_vmcs12
KVM: x86: Add kvm_skip_emulated_instruction and use it.
KVM: x86: Do not clear RFLAGS.TF when a singlestep trap occurs.
Ladi Prosek (4):
KVM: nVMX: fix CR3 load if L2 uses PAE paging and EPT
KVM: nVMX: propagate errors from prepare_vmcs02
KVM: nVMX: introduce nested_vmx_load_cr3 and call it on vmentry
KVM: nVMX: check host CR3 on vmentry and vmexit
Longpeng(Mike) (2):
kvm: x86: remove the misleading comment in vmx_handle_external_intr
arm/arm64: KVM: Clean up useless code in kvm_timer_enable
Luwei Kang (1):
kvm: x86: Add AVX512_4VNNIW and AVX512_4FMAPS support
Marc Zyngier (1):
arm64: KVM: pmu: Reset PMSELR_EL0.SEL to a sane value before entering the guest
Michael Ellerman (1):
powerpc/reg: Add definition for LPCR_PECE_HVEE
Michael Neuling (1):
powerpc/powernv: Define and set POWER9 HFSCR doorbell bit
Paolo Bonzini (5):
KVM: x86: use ktime_get instead of seeking the hrtimer_clock_base
KVM: nVMX: support descriptor table exits
kvm: x86: avoid atomic operations on APICv vmentry
Merge tag 'tags/for-kvmgt' into HEAD
Merge tag 'kvm-arm-for-4.10' of git://git.kernel.org/.../kvmarm/kvmarm into HEAD
Paul Mackerras (19):
powerpc/64: Simplify adaptation to new ISA v3.00 HPTE format
KVM: PPC: Book3S HV: Save/restore XER in checkpointed register state
KVM: PPC: Book3S HV: Don't lose hardware R/C bit updates in H_PROTECT
powerpc/64: Add some more SPRs and SPR bits for POWER9
powerpc/64: Provide functions for accessing POWER9 partition table
powerpc/powernv: Define real-mode versions of OPAL XICS accessors
Merge remote-tracking branch 'remotes/powerpc/topic/ppc-kvm' into kvm-ppc-next
KVM: PPC: Book3S HV: Adapt to new HPTE format on POWER9
KVM: PPC: Book3S HV: Set partition table rather than SDR1 on POWER9
KVM: PPC: Book3S HV: Adjust host/guest context switch for POWER9
KVM: PPC: Book3S HV: Add new POWER9 guest-accessible SPRs
KVM: PPC: Book3S HV: Adapt TLB invalidations to work on POWER9
KVM: PPC: Book3S HV: Use msgsnd for IPIs to other cores on POWER9
KVM: PPC: Book3S HV: Use OPAL XICS emulation on POWER9
KVM: PPC: Book3S HV: Use stop instruction rather than nap on POWER9
KVM: PPC: Book3S HV: Enable hypervisor virtualization interrupts while in guest
KVM: PPC: Book3S HV: Treat POWER9 CPU threads as independent subcores
KVM: PPC: Book3S HV: Fix compilation with unusual configurations
KVM: PPC: Book3S: Move prototypes for KVM functions into kvm_ppc.h
Peter Feiner (1):
KVM: X86: MMU: no mmu_notifier_seq++ in kvm_age_hva
Petr Mladek (1):
KVM: x86: Handle the kthread worker using the new API
Radim KrÄmÃÅ (11):
KVM: VMX: remove functions that enable msr intercepts
KVM: VMX: join functions that disable x2apic msr intercepts
KVM: VMX: refactor setup of global page-sized bitmaps
Merge branch 'x86/cpufeature' of git://git.kernel.org/.../tip/tip into kvm/next
KVM: x86: add Align16 instruction flag
KVM: x86: save one bit in ctxt->d
KVM: x86: add asm_safe wrapper
KVM: x86: emulate FXSAVE and FXRSTOR
Merge tag 'kvm-s390-next-4.10-1' of git://git.kernel.org/.../kvms390/linux
Merge branch 'kvm-ppc-next' of git://git.kernel.org/.../paulus/powerpc
Merge branch 'kvm-ppc-next' of git://git.kernel.org/.../paulus/powerpc
Suraj Jitindar Singh (9):
kvm/stats: Update kvm stats to clear on write to their debugfs entry
powerpc/64: Define new ISA v3.00 logical PVR value and PCR register value
KVM: PPC: Book3S HV: Update kvmppc_set_arch_compat() for ISA v3.00
KVM: Export kvm module parameter variables
KVM: PPC: Book3S HV: Use generic kvm module parameters
KVM: PPC: Book3S HV: Add check for module parameter halt_poll_ns
KVM: PPC: Decrease the powerpc default halt poll max value
KVM: PPC: Book3S HV: Comment style and print format fixups
KVM: Add halt polling documentation
Tom Lendacky (2):
kvm: svm: Add support for additional SVM NPF error codes
kvm: svm: Add kvm_fast_pio_in support
Vladimir Murzin (2):
KVM: arm64: vgic-its: Fix compatibility with 32-bit
ARM: KVM: Support vGICv3 ITS
Wanpeng Li (6):
KVM: VMX: Better name x2apic msr bitmaps
KVM: LAPIC: extract start_sw_period() to handle periodic/oneshot mode
KVM: LAPIC: guarantee the timer is in tsc-deadline mode
KVM: LAPIC: introduce kvm_get_lapic_target_expiration_tsc()
KVM: LAPIC: rename start/cancel_hv_tscdeadline to start/cancel_hv_timer
KVM: LAPIC: add APIC Timer periodic/oneshot mode VMX preemption timer support
Wei Yongjun (1):
KVM: PPC: Book3S HV: Use list_move_tail instead of list_del/list_add_tail
Xiaoguang Chen (2):
KVM: x86: add track_flush_slot page track notifier
KVM: x86: add track_flush_slot page track notifier
Yongji Xie (2):
KVM: PPC: Book3S HV: Clear the key field of HPTE when the page is paged out
KVM: PPC: Book3S HV: Add a per vcpu cache for recently page faulted MMIO entries
Documentation/virtual/kvm/00-INDEX | 2 +
Documentation/virtual/kvm/api.txt | 5 +-
Documentation/virtual/kvm/halt-polling.txt | 127 +++
arch/arm/include/uapi/asm/kvm.h | 2 +
arch/arm/kvm/Kconfig | 1 +
arch/arm/kvm/Makefile | 1 +
arch/arm/kvm/arm.c | 6 +
arch/arm64/kvm/Kconfig | 4 -
arch/arm64/kvm/hyp/switch.c | 8 +-
arch/arm64/kvm/reset.c | 6 -
arch/powerpc/include/asm/book3s/64/mmu-hash.h | 47 +-
arch/powerpc/include/asm/kvm_asm.h | 1 +
arch/powerpc/include/asm/kvm_host.h | 27 +-
arch/powerpc/include/asm/kvm_ppc.h | 49 +-
arch/powerpc/include/asm/mmu.h | 5 +
arch/powerpc/include/asm/opal.h | 3 +
arch/powerpc/include/asm/reg.h | 15 +
arch/powerpc/include/uapi/asm/kvm.h | 5 +
arch/powerpc/kernel/asm-offsets.c | 4 +
arch/powerpc/kernel/cpu_setup_power.S | 2 +-
arch/powerpc/kvm/book3s_64_mmu_hv.c | 63 +-
arch/powerpc/kvm/book3s_64_vio_hv.c | 1 -
arch/powerpc/kvm/book3s_hv.c | 254 ++++--
arch/powerpc/kvm/book3s_hv_builtin.c | 72 +-
arch/powerpc/kvm/book3s_hv_ras.c | 1 +
arch/powerpc/kvm/book3s_hv_rm_mmu.c | 223 ++++-
arch/powerpc/kvm/book3s_hv_rm_xics.c | 23 +-
arch/powerpc/kvm/book3s_hv_rmhandlers.S | 140 ++-
arch/powerpc/kvm/powerpc.c | 16 +-
arch/powerpc/kvm/trace_hv.h | 2 +-
arch/powerpc/mm/hash_native_64.c | 30 +-
arch/powerpc/mm/hash_utils_64.c | 28 +-
arch/powerpc/mm/pgtable-radix.c | 18 +-
arch/powerpc/mm/pgtable_64.c | 34 +
arch/powerpc/platforms/powernv/opal-wrappers.S | 3 +
arch/powerpc/platforms/powernv/opal.c | 2 +
arch/powerpc/platforms/ps3/htab.c | 2 +-
arch/powerpc/platforms/pseries/lpar.c | 2 +-
arch/s390/kvm/interrupt.c | 2 +-
arch/s390/kvm/kvm-s390.c | 57 +-
arch/x86/events/intel/pt.c | 45 +-
arch/x86/include/asm/kvm_host.h | 18 +-
arch/x86/include/asm/kvm_page_track.h | 14 +-
arch/x86/include/asm/processor.h | 14 +
arch/x86/include/asm/vmx.h | 37 +-
arch/x86/include/uapi/asm/vmx.h | 5 +
arch/x86/kernel/cpu/scattered.c | 57 +-
arch/x86/kernel/cpuid.c | 4 -
arch/x86/kvm/cpuid.c | 26 +-
arch/x86/kvm/emulate.c | 200 ++++-
arch/x86/kvm/hyperv.c | 2 +-
arch/x86/kvm/i8254.c | 15 +-
arch/x86/kvm/i8254.h | 3 +-
arch/x86/kvm/lapic.c | 212 +++--
arch/x86/kvm/lapic.h | 2 +
arch/x86/kvm/mmu.c | 43 +-
arch/x86/kvm/page_track.c | 31 +-
arch/x86/kvm/svm.c | 21 +-
arch/x86/kvm/vmx.c | 1092 +++++++++++++++---------
arch/x86/kvm/x86.c | 94 +-
include/linux/irqchip/arm-gic-v3.h | 8 +-
include/linux/kvm_host.h | 10 +
include/uapi/linux/kvm.h | 5 +-
virt/kvm/arm/arch_timer.c | 17 +-
virt/kvm/arm/vgic/vgic-its.c | 11 +-
virt/kvm/arm/vgic/vgic-kvm-device.c | 2 -
virt/kvm/arm/vgic/vgic-mmio-v2.c | 3 +-
virt/kvm/arm/vgic/vgic-mmio-v3.c | 2 -
virt/kvm/arm/vgic/vgic.h | 26 -
virt/kvm/kvm_main.c | 87 +-
70 files changed, 2430 insertions(+), 969 deletions(-)
create mode 100644 Documentation/virtual/kvm/halt-polling.txt