[GIT PULL] First batch of KVM changes for 4.11 merge window

From: Paolo Bonzini
Date: Wed Feb 22 2017 - 10:32:57 EST


The following changes since commit 7170bdc777556dad87f92e6a73a6cc557bf3290e:

MIPS: Add return errors to protected cache ops (2017-02-03 15:19:02 +0000)

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

x86/kvm: Provide optimized version of vcpu_is_preempted() for x86-64 (2017-02-21 12:48:35 +0100)

4.11 is going to be a relatively large release for KVM, with a little over
200 commits and noteworthy changes for most architectures.

* ARM:
- GICv3 save/restore
- cache flushing fixes
- working MSI injection for GICv3 ITS
- physical timer emulation

- various improvements under the hood
- support for SMP guests
- a large rewrite of MMU emulation. KVM MIPS can now use MMU notifiers
to support copy-on-write, KSM, idle page tracking, swapping, ballooning
and everything else. KVM_CAP_READONLY_MEM is also supported, so that
writes to some memory regions can be treated as MMIO. The new MMU also
paves the way for hardware virtualization support.

* PPC:
- support for POWER9 using the radix-tree MMU for host and guest
- resizable hashed page table
- bugfixes.

* s390: expose more features to the guest
- more SIMD extensions
- instruction execution protection

* x86:
- improved hashing in the MMU
- faster PageLRU tracking for Intel CPUs without EPT A/D bits
- some refactoring of nested VMX entry/exit code, preparing for live
migration support of nested hypervisors
- expose yet another AVX512 CPUID bit
- host-to-guest PTP support
- refactoring of interrupt injection, with some optimizations thrown in
and some duct tape removed.
- remove lazy FPU handling
- optimizations of user-mode exits
- optimizations of vcpu_is_preempted() for KVM guests

* generic:
- alternative signaling mechanism that doesn't pound on tsk->sighand->siglock

Andy Lutomirski (6):
x86/asm: Define the kernel TSS limit in a macro
x86/kvm/vmx: Don't fetch the TSS base from the GDT
x86/kvm/vmx: Get rid of segment_base() on 64-bit kernels
x86/kvm/vmx: Simplify segment_base()
x86/asm/64: Drop __cacheline_aligned from struct x86_hw_tss
x86/kvm/vmx: Defer TR reload after VM exit

Arnd Bergmann (1):
KVM: x86: hide KVM_HC_CLOCK_PAIRING on 32 bit

Benjamin Herrenschmidt (1):
powerpc/powernv: Remove separate entry for OPAL real mode calls

Cao, Lei (1):
KVM: Support vCPU-based gfn->hva cache

Chao Peng (1):
KVM: VMX: use correct vmcs_read/write for guest segment selector/base

Christian Borntraeger (5):
KVM: s390: gaccess: add ESOP2 handling
KVM: s390: Get rid of ar_t
Merge tag 'kvm-s390-master-4.10-1' of git://git.kernel.org/.../kvms390/linux into kernelorgnext
KVM: s390: Add debug logging to basic cpu model interface
KVM: s390: detect some program check loops

Christoffer Dall (3):
KVM: arm/arm64: Remove struct vgic_irq pending field
KVM: arm/arm64: vgic: Add debugfs vgic-state file
KVM: arm/arm64: Remove kvm_vgic_inject_mapped_irq

David Gibson (12):
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
KVM: PPC: Book3S HV: Prevent double-free on HPT resize commit path

David Hildenbrand (6):
KVM: s390: guestdbg: filter i-fetch events on icpts
KVM: s390: prepare to read random guest instructions
KVM: s390: guestdbg: filter PER i-fetch on EXECUTE properly
KVM: nVMX: kmap() can't fail
KVM: nVMX: vmx_complete_nested_posted_interrupt() can't fail
KVM: svm: inititalize hash table structures directly

David Matlack (2):
kvm: x86: export maximum number of mmu_page_hash collisions
kvm: x86: reduce collisions in mmu_page_hash

Guenther Hutzl (1):
KVM: s390: Introduce BCD Vector Instructions to the guest

Heiko Carstens (1):
KVM: s390: get rid of bogus cc initialization

James Hogan (58):
Merge MIPS prerequisites
KVM: MIPS: Drop partial KVM_NMI implementation
KVM: MIPS/MMU: Simplify ASID restoration
KVM: MIPS: Convert get/set_regs -> vcpu_load/put
KVM: MIPS/MMU: Move preempt/ASID handling to implementation
KVM: MIPS: Remove duplicated ASIDs from vcpu
KVM: MIPS: Add vcpu_run() & vcpu_reenter() callbacks
KVM: MIPS/T&E: Restore host asid on return to host
KVM: MIPS/T&E: active_mm = init_mm in guest context
KVM: MIPS: Wire up vcpu uninit
KVM: MIPS/T&E: Allocate GVA -> HPA page tables
KVM: MIPS/T&E: Activate GVA page tables in guest context
KVM: MIPS: Support NetLogic KScratch registers
KVM: MIPS: Add fast path TLB refill handler
KVM: MIPS/TLB: Fix off-by-one in TLB invalidate
KVM: MIPS/TLB: Generalise host TLB invalidate to kernel ASID
KVM: MIPS/MMU: Invalidate GVA PTs on ASID changes
KVM: MIPS/MMU: Invalidate stale GVA PTEs on TLBW
KVM: MIPS/MMU: Convert KSeg0 faults to page tables
KVM: MIPS/MMU: Convert TLB mapped faults to page tables
KVM: MIPS/MMU: Convert commpage fault handling to page tables
KVM: MIPS: Drop vm_init() callback
KVM: MIPS: Use uaccess to read/modify guest instructions
KVM: MIPS/Emulate: Fix CACHE emulation for EVA hosts
KVM: MIPS/TLB: Drop kvm_local_flush_tlb_all()
KVM: MIPS/Emulate: Drop redundant TLB flushes on exceptions
KVM: MIPS/MMU: Drop kvm_get_new_mmu_context()
KVM: MIPS/T&E: Don't treat code fetch faults as MMIO
KVM: MIPS: Improve kvm_get_inst() error return
KVM: MIPS: Use CP0_BadInstr[P] for emulation
KVM: MIPS/MMU: Convert guest physical map to page table
KVM: MIPS: Update vcpu->mode and vcpu->cpu
KVM: MIPS/T&E: Handle TLB invalidation requests
KVM: MIPS/T&E: Reduce stale ASID checks
KVM: MIPS/T&E: Add lockless GVA access helpers
KVM: MIPS/T&E: Use lockless GVA helpers for dyntrans
KVM: MIPS/MMU: Use lockless GVA helpers for get_inst()
KVM: MIPS/Emulate: Use lockless GVA helpers for cache emulation
KVM: MIPS: Implement kvm_arch_flush_shadow_all/memslot
KVM: MIPS/T&E: Ignore user writes to CP0_Config7
KVM: MIPS: Pass type of fault down to kvm_mips_map_page()
KVM: MIPS/T&E: Abstract bad access handling
KVM: MIPS/T&E: Treat unhandled guest KSeg0 as MMIO
KVM: MIPS/T&E: Handle read only GPA in TLB mod
KVM: MIPS/MMU: Add GPA PT mkclean helper
KVM: MIPS/MMU: Use generic dirty log & protect helper
KVM: MIPS: Clean & flush on dirty page logging enable
KVM: MIPS/MMU: Handle dirty logging on GPA faults
KVM: MIPS/MMU: Pass GPA PTE bits to KSeg0 GVA PTEs
KVM: MIPS/MMU: Pass GPA PTE bits to mapped GVA PTEs
KVM: MIPS/T&E: Move CP0 register access into T&E
KVM: MIPS/T&E: Implement CP0_EBase register
KVM: MIPS/T&E: Default to reset vector
KVM: MIPS/T&E: Expose CP0_EntryLo0/1 registers
KVM: MIPS/T&E: Expose read-only CP0_IntCtl register
KVM: MIPS: Allow multiple VCPUs to be created

Janosch Frank (3):
KVM: s390: instruction-execution-protection support
KVM: s390: Fix RRBE return code not being CC
KVM: s390: Disable dirty log retrieval for UCONTROL guests

Jim Mattson (8):
kvm: nVMX: Reorder error checks for emulated VMXON
Revert "KVM: nested VMX: disable perf cpuid reporting"
kvm: nVMX: Prepare for checkpointing L2 state
kvm: nVMX: Refactor handle_vmon()
kvm: nVMX: Refactor handle_vmptrld()
kvm: nVMX: Refactor nested_get_vmcs12_pages()
kvm: nVMX: Split VMCS checks from nested_vmx_run()
kvm: nVMX: Refactor nested_vmx_run()

Jintack Lim (10):
KVM: arm/arm64: Abstract virtual timer context into separate structure
KVM: arm/arm64: Move cntvoff to each timer context
KVM: arm/arm64: Decouple kvm timer functions from virtual timer
KVM: arm/arm64: Add the EL1 physical timer context
KVM: arm/arm64: Initialize the emulated EL1 physical timer
KVM: arm/arm64: Update the physical timer interrupt level
KVM: arm/arm64: Set a background timer to the earliest timer expiration
KVM: arm/arm64: Set up a background timer for the physical timer emulation
KVM: arm64: Add the EL1 physical timer access handler
KVM: arm/arm64: Emulate the EL1 phys timer registers

Junaid Shahid (13):
kvm: x86: mmu: Use symbolic constants for EPT Violation Exit Qualifications
kvm: x86: mmu: Rename spte_is_locklessly_modifiable()
kvm: x86: mmu: Fast Page Fault path retries
kvm: x86: mmu: Refactor accessed/dirty checks in mmu_spte_update/clear
kvm: x86: mmu: Introduce a no-tracking version of mmu_spte_update
kvm: x86: mmu: Do not use bit 63 for tracking special SPTEs
kvm: x86: mmu: Lockless access tracking for Intel CPUs without EPT A bits.
kvm: x86: mmu: Update documentation for fast page fault mechanism
kvm: x86: mmu: Rename EPT_VIOLATION_READ/WRITE/INSTR constants
kvm: x86: mmu: Set SPTE_SPECIAL_MASK within mmu.c
kvm: x86: mmu: Update comment in mark_spte_for_access_track
kvm: x86: mmu: Move pgtbl walk inside retry loop in fast_page_fault
kvm: x86: mmu: Verify that restored PTE has needed perms in fast page fault

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

Marc Zyngier (3):
arm/arm64: KVM: Enforce unconditional flush to PoC when mapping to stage-2
arm/arm64: KVM: Stop propagating cacheability status of a faulted page
arm/arm64: KVM: Get rid of KVM_MEMSLOT_INCOHERENT

Marcelo Tosatti (3):
KVM: x86: add KVM_HC_CLOCK_PAIRING hypercall
kvmclock: export kvmclock clocksource and data pointers
PTP: add kvm PTP driver

Markus Elfring (4):
MIPS: KVM: Return directly after a failed copy_from_user() in kvm_arch_vcpu_ioctl()
KVM: Return directly after a failed copy_from_user() in kvm_vm_compat_ioctl()
KVM: Return an error code only as a constant in kvm_get_dirty_log_protect()
KVM: Return an error code only as a constant in kvm_get_dirty_log()

Maxim Samoylov (1):
KVM: s390: Introduce Vector Enhancements facility 1 to the guest

Nicholas Piggin (4):
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
powerpc/64: CONFIG_RELOCATABLE support for hmi interrupts

Paolo Bonzini (25):
KVM: x86: add VCPU stat for KVM_REQ_EVENT processing
KVM: vmx: speed up TPR below threshold vmexits
KVM: lapic: remove unnecessary KVM_REQ_EVENT on PPR update
KVM: lapic: do not set KVM_REQ_EVENT unnecessarily on PPR update
KVM: lapic: do not scan IRR when delivering an interrupt
Merge branch 'kvm-ppc-next' of git://git.kernel.org/.../paulus/powerpc into HEAD
Merge tag 'kvm_mips_4.11_1' of git://git.kernel.org/.../jhogan/kvm-mips into HEAD
Merge tag 'kvm-s390-next-4.11-2' of git://git.kernel.org/.../kvms390/linux into HEAD
KVM: x86: fix compilation
Merge tag 'kvmarm-for-4.11' of git://git.kernel.org/.../kvmarm/kvmarm into HEAD
Merge branch 'kvm-ppc-next' of git://git.kernel.org/.../paulus/powerpc into HEAD
kvm: vmx: Use the hardware provided GPA instead of page walk
KVM: vmx: clear pending interrupts on KVM_SET_LAPIC
kvm: nVMX: move nested events check to kvm_vcpu_running
KVM: x86: preparatory changes for APICv cleanups
KVM: vmx: move sync_pir_to_irr from apic_find_highest_irr to callers
KVM: x86: do not scan IRR twice on APICv vmentry
kvm: x86: do not use KVM_REQ_EVENT for APICv interrupt injection
KVM: VMX: use vmcs_set/clear_bits for CPU-based execution controls
KVM: only retrieve memslots once when initializing cache
KVM: use separate generations for each address space
KVM: race-free exit from KVM_RUN without POSIX signals
KVM: x86: remove code for lazy FPU handling
Merge branch 'kvm-ppc-next' of git://git.kernel.org/.../paulus/powerpc into HEAD
kvm: fix page struct leak in handle_vmon

Paul Mackerras (25):
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
Merge remote-tracking branch 'remotes/powerpc/topic/ppc-kvm' into kvm-ppc-next
KVM: PPC: Book3S HV: Disable HPT resizing on POWER9 for now

Piotr Luc (1):
kvm: x86: Expose Intel VPOPCNTDQ feature to guest

Radim KrÄmÃÅ (12):
KVM: x86: don't allow kernel irqchip with split irqchip
KVM: x86: decouple irqchip_in_kernel() and pic_irqchip()
KVM: x86: make pic setup code look like ioapic setup
KVM: x86: refactor pic setup in kvm_set_routing_entry
KVM: x86: prevent setup of invalid routes
KVM: x86: simplify conditions with split/kernel irqchip
KVM: x86: use delivery to self in hyperv synic
KVM: x86: replace kvm_apic_id with kvm_{x,x2}apic_id
KVM: x86: make interrupt delivery fast and slow path behave the same
KVM: x86: allow hotplug of VCPU with APIC ID over 0xff
Merge branch 'x86/cpufeature' of git://git.kernel.org/.../tip/tip into next
ptp_kvm: try to detect hypercall availability

Shanker Donthineni (1):
KVM: arm/arm64: vgic: Stop injecting the MSI occurrence twice

Thomas Huth (2):
KVM: PPC: Book3S PR: Refactor program interrupt related code into separate function
KVM: PPC: Book3S HV: Turn "KVM guest htab" message into a debug message

Tom Lendacky (1):
kvm: svm: Use the hardware provided GPA instead of page walk

Vijaya Kumar K (8):
KVM: arm/arm64: vgic: Implement support for userspace access
KVM: arm/arm64: vgic: Add distributor and redistributor access
KVM: arm/arm64: vgic: Introduce find_reg_by_id()
irqchip/gic-v3: Add missing system register definitions
KVM: arm/arm64: vgic: Introduce VENG0 and VENG1 fields to vmcr struct
KVM: arm/arm64: vgic: Implement VGICv3 CPU interface access
KVM: arm/arm64: vgic: Implement KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO ioctl
KVM: arm/arm64: Documentation: Update arm-vgic-v3.txt

Vipin K Parashar (1):
KVM: PPC: Book3S PR: Ratelimit copy data failure error messages

Waiman Long (2):
x86/paravirt: Change vcp_is_preempted() arg type to long
x86/kvm: Provide optimized version of vcpu_is_preempted() for x86-64

Wei Yongjun (1):
KVM: PPC: Book 3S: Fix error return in kvm_vm_ioctl_create_spapr_tce()

Documentation/virtual/kvm/api.txt | 217 +++-
Documentation/virtual/kvm/devices/arm-vgic-v3.txt | 11 +-
Documentation/virtual/kvm/hypercalls.txt | 35 +
Documentation/virtual/kvm/locking.txt | 31 +-
arch/arm/include/asm/kvm_host.h | 3 -
arch/arm/include/asm/kvm_mmu.h | 12 +-
arch/arm/include/uapi/asm/kvm.h | 13 +
arch/arm/kvm/Makefile | 5 +-
arch/arm/kvm/arm.c | 8 +-
arch/arm/kvm/mmu.c | 20 +-
arch/arm/kvm/reset.c | 9 +-
arch/arm/kvm/vgic-v3-coproc.c | 35 +
arch/arm64/include/asm/kvm_host.h | 3 -
arch/arm64/include/asm/kvm_mmu.h | 6 +-
arch/arm64/include/uapi/asm/kvm.h | 13 +
arch/arm64/kvm/Makefile | 4 +-
arch/arm64/kvm/reset.c | 9 +-
arch/arm64/kvm/sys_regs.c | 92 +-
arch/arm64/kvm/sys_regs.h | 4 +
arch/arm64/kvm/vgic-sys-reg-v3.c | 346 ++++++
arch/mips/include/asm/kvm_host.h | 183 ++-
arch/mips/include/asm/mmu_context.h | 9 +-
arch/mips/include/uapi/asm/kvm.h | 2 +
arch/mips/kvm/Kconfig | 2 +
arch/mips/kvm/dyntrans.c | 52 +-
arch/mips/kvm/emulate.c | 432 +++----
arch/mips/kvm/entry.c | 155 ++-
arch/mips/kvm/interrupt.c | 5 +-
arch/mips/kvm/mips.c | 503 +++-----
arch/mips/kvm/mmu.c | 1329 +++++++++++++++++----
arch/mips/kvm/tlb.c | 291 +----
arch/mips/kvm/trap_emul.c | 734 ++++++++++--
arch/powerpc/include/asm/book3s/64/mmu.h | 18 +-
arch/powerpc/include/asm/exception-64s.h | 83 +-
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/opal.h | 7 -
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 | 63 +-
arch/powerpc/kernel/idle_book3s.S | 6 +-
arch/powerpc/kernel/prom_init.c | 18 +-
arch/powerpc/kvm/Makefile | 3 +-
arch/powerpc/kvm/book3s.c | 1 +
arch/powerpc/kvm/book3s_32_mmu.c | 3 +-
arch/powerpc/kvm/book3s_64_mmu.c | 3 +-
arch/powerpc/kvm/book3s_64_mmu_hv.c | 743 +++++++++---
arch/powerpc/kvm/book3s_64_mmu_radix.c | 716 +++++++++++
arch/powerpc/kvm/book3s_64_vio.c | 1 +
arch/powerpc/kvm/book3s_hv.c | 268 ++++-
arch/powerpc/kvm/book3s_hv_builtin.c | 38 +-
arch/powerpc/kvm/book3s_hv_rm_mmu.c | 87 +-
arch/powerpc/kvm/book3s_hv_rm_xics.c | 156 ++-
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 | 42 +-
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/powernv/opal-wrappers.S | 70 +-
arch/powerpc/platforms/powernv/pci-ioda.c | 5 -
arch/powerpc/platforms/pseries/firmware.c | 2 +-
arch/powerpc/platforms/pseries/lpar.c | 29 +
arch/s390/kvm/gaccess.c | 26 +-
arch/s390/kvm/gaccess.h | 19 +-
arch/s390/kvm/guestdbg.c | 120 +-
arch/s390/kvm/intercept.c | 25 +-
arch/s390/kvm/kvm-s390.c | 46 +-
arch/s390/kvm/kvm-s390.h | 12 +-
arch/s390/kvm/priv.c | 30 +-
arch/s390/kvm/vsie.c | 3 +
arch/s390/mm/pgtable.c | 2 +-
arch/s390/tools/gen_facilities.c | 2 +
arch/x86/include/asm/desc.h | 58 +-
arch/x86/include/asm/kvm_emulate.h | 1 +
arch/x86/include/asm/kvm_host.h | 30 +-
arch/x86/include/asm/kvmclock.h | 6 +
arch/x86/include/asm/paravirt.h | 2 +-
arch/x86/include/asm/processor.h | 12 +-
arch/x86/include/asm/qspinlock.h | 2 +-
arch/x86/include/asm/vmx.h | 28 +-
arch/x86/include/uapi/asm/kvm_para.h | 9 +
arch/x86/kernel/asm-offsets_64.c | 9 +
arch/x86/kernel/ioport.c | 5 +
arch/x86/kernel/kvm.c | 26 +-
arch/x86/kernel/kvmclock.c | 5 +-
arch/x86/kernel/paravirt-spinlocks.c | 2 +-
arch/x86/kernel/process.c | 10 +
arch/x86/kvm/cpuid.c | 10 +-
arch/x86/kvm/emulate.c | 20 +-
arch/x86/kvm/hyperv.c | 4 +-
arch/x86/kvm/i8259.c | 16 +-
arch/x86/kvm/irq.h | 19 +-
arch/x86/kvm/irq_comm.c | 29 +-
arch/x86/kvm/lapic.c | 197 ++-
arch/x86/kvm/lapic.h | 16 +-
arch/x86/kvm/mmu.c | 509 +++++---
arch/x86/kvm/svm.c | 57 +-
arch/x86/kvm/vmx.c | 909 +++++++-------
arch/x86/kvm/x86.c | 274 +++--
drivers/ptp/Kconfig | 12 +
drivers/ptp/Makefile | 1 +
drivers/ptp/ptp_kvm.c | 207 ++++
include/kvm/arm_arch_timer.h | 39 +-
include/kvm/arm_vgic.h | 18 +-
include/linux/irqchip/arm-gic-v3.h | 45 +-
include/linux/kvm_host.h | 18 +-
include/uapi/linux/kvm.h | 21 +-
include/uapi/linux/kvm_para.h | 2 +
virt/kvm/arm/arch_timer.c | 201 +++-
virt/kvm/arm/hyp/timer-sr.c | 13 +-
virt/kvm/arm/vgic/vgic-debug.c | 283 +++++
virt/kvm/arm/vgic/vgic-init.c | 4 +
virt/kvm/arm/vgic/vgic-irqfd.c | 3 +
virt/kvm/arm/vgic/vgic-its.c | 6 +-
virt/kvm/arm/vgic/vgic-kvm-device.c | 231 +++-
virt/kvm/arm/vgic/vgic-mmio-v2.c | 87 +-
virt/kvm/arm/vgic/vgic-mmio-v3.c | 203 +++-
virt/kvm/arm/vgic/vgic-mmio.c | 167 ++-
virt/kvm/arm/vgic/vgic-mmio.h | 24 +
virt/kvm/arm/vgic/vgic-v2.c | 12 +-
virt/kvm/arm/vgic/vgic-v3.c | 40 +-
virt/kvm/arm/vgic/vgic.c | 66 +-
virt/kvm/arm/vgic/vgic.h | 83 +-
virt/kvm/kvm_main.c | 113 +-
135 files changed, 8892 insertions(+), 3213 deletions(-)
create mode 100644 arch/arm/kvm/vgic-v3-coproc.c
create mode 100644 arch/arm64/kvm/vgic-sys-reg-v3.c
create mode 100644 arch/powerpc/kvm/book3s_64_mmu_radix.c
create mode 100644 arch/x86/include/asm/kvmclock.h
create mode 100644 drivers/ptp/ptp_kvm.c