[GIT PULL] First round of KVM changes for 4.6

From: Paolo Bonzini
Date: Mon Mar 14 2016 - 09:39:32 EST


Linus,

The following changes since commit fc77dbd34c5c99bce46d40a2491937c3bcbd10af:

Linux 4.5-rc6 (2016-02-28 08:41:20 -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 f958ee745f70b60d0e41927cab2c073104bc70c2:

Merge tag 'kvm-s390-next-4.6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD (2016-03-10 17:06:07 +0100)

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

One of the largest releases for KVM... Hardly any generic improvement,
but lots of architecture-specific changes.

* ARM:
- VHE support so that we can run the kernel at EL2 on ARMv8.1 systems
- PMU support for guests
- 32bit world switch rewritten in C
- various optimizations to the vgic save/restore code.

* PPC:
- enabled KVM-VFIO integration ("VFIO device")
- optimizations to speed up IPIs between vcpus
- in-kernel handling of IOMMU hypercalls
- support for dynamic DMA windows (DDW).

* s390:
- provide the floating point registers via sync regs;
- separated instruction vs. data accesses
- dirty log improvements for huge guests
- bugfixes and documentation improvements.

* x86:
- Hyper-V VMBus hypercall userspace exit
- alternative implementation of lowest-priority interrupts using vector
hashing (for better VT-d posted interrupt support)
- fixed guest debugging with nested virtualizations
- improved interrupt tracking in the in-kernel IOAPIC
- generic infrastructure for tracking writes to guest memory---currently
its only use is to speedup the legacy shadow paging (pre-EPT) case, but
in the future it will be used for virtual GPUs as well
- much cleanup (LAPIC, kvmclock, MMU, PIT), including ubsan fixes.

----------------------------------------------------------------
Alexander Yarygin (1):
KVM: s390: Add diag "watchdog functions" to trace event decoding

Alexey Kardashevskiy (11):
powerpc: Make vmalloc_to_phys() public
KVM: PPC: Rework H_PUT_TCE/H_GET_TCE handlers
KVM: PPC: Use RCU for arch.spapr_tce_tables
KVM: PPC: Account TCE-containing pages in locked_vm
KVM: PPC: Replace SPAPR_TCE_SHIFT with IOMMU_PAGE_SHIFT_4K
KVM: PPC: Move reusable bits of H_PUT_TCE handler to helpers
KVM: PPC: Add support for multiple-TCE hcalls
KVM: PPC: Reserve KVM_CAP_SPAPR_TCE_64 capability number
KVM: PPC: Add @page_shift to kvmppc_spapr_tce_table
KVM: PPC: Add @offset to kvmppc_spapr_tce_table
KVM: PPC: Add support for 64bit TCE windows

Andrey Smetanin (5):
kvm/x86: Rename Hyper-V long spin wait hypercall
drivers/hv: Move VMBus hypercall codes into Hyper-V UAPI header
kvm/x86: Pass return code of kvm_emulate_hypercall
kvm/x86: Reject Hyper-V hypercall continuation
kvm/x86: Hyper-V VMBus hypercall userspace exit

Christian Borntraeger (4):
KVM: s390: do not take mmap_sem on dirty log query
KVM: s390: do not block CPU on dirty logging
KVM: s390: bail out early on fatal signal in dirty logging
KVM: halt_polling: improve grow/shrink settings

Cornelia Huck (1):
KVM: s390: usage hint for adapter mappings

David Gibson (1):
vfio: Enable VFIO device for powerpc

David Hildenbrand (22):
KVM: s390: allow sync of fp registers via vregs
KVM: s390: sync of fp registers via kvm_run
KVM: s390: PSW forwarding / rewinding / ilc rework
KVM: s390: migration / injection of prog irq ilc
KVM: s390: gaccess: introduce access modes
KVM: s390: gaccess: implement instruction fetching mode
KVM: s390: read the correct opcode on SIE faults
KVM: s390: clean up prog irq injection on prog irq icpts
KVM: s390: irq delivery should not rely on icptcode
KVM: s390: provide prog irq ilc on SIE faults
KVM: s390: instruction-fetching exceptions on SIE faults
KVM: s390: remove old fragment of vector registers
KVM: s390: add documentation of KVM_S390_VM_TOD
KVM: s390: add documentation of KVM_S390_VM_CRYPTO
KVM: s390: store cpu id in vcpu->cpu when scheduled in
KVM: s390: abstract access to the VCPU cpu timer
KVM: s390: step VCPU cpu timer during kvm_run ioctl
KVM: s390: protect VCPU cpu timer with a seqcount
KVM: s390: step the VCPU timer while in enabled wait
KVM: s390: wake up when the VCPU cpu timer expires
KVM: s390: enable STFLE interpretation only if enabled for the guest
KVM: s390: allocate only one DMA page per VM

Feng Wu (4):
KVM: Recover IRTE to remapped mode if the interrupt is not single-destination
KVM: x86: Use vector-hashing to deliver lowest-priority interrupts
KVM: x86: Add lowest-priority support for vt-d posted-interrupts
KVM/VMX: Add host irq information in trace event when updating IRTE for posted interrupts

Geliang Tang (4):
KVM: use list_for_each_entry_safe
KVM: x86: use list_for_each_entry*
KVM: x86: use list_last_entry
KVM: async_pf: use list_first_entry

Jan Kiszka (2):
KVM: VMX: Factor out is_exception_n helper
KVM: VMX: Fix guest debugging while in L2

Joerg Roedel (3):
kvm: x86: Convert ioapic->rtc_status.dest_map to a struct
kvm: x86: Track irq vectors in ioapic->rtc_status.dest_map
kvm: x86: Check dest_map->vector to match eoi signals for rtc

Marc Zyngier (76):
arm/arm64: KVM: Add hook for C-based stage2 init
ARM: KVM: Move the HYP code to its own section
ARM: KVM: Remove __kvm_hyp_code_start/__kvm_hyp_code_end
ARM: KVM: Move VFP registers to a CPU context structure
ARM: KVM: Move CP15 array into the CPU context structure
ARM: KVM: Move GP registers into the CPU context structure
ARM: KVM: Add a HYP-specific header file
ARM: KVM: Add system register accessor macros
ARM: KVM: Add TLB invalidation code
ARM: KVM: Add CP15 save/restore code
ARM: KVM: Add timer save/restore
ARM: KVM: Add vgic v2 save/restore
ARM: KVM: Add VFP save/restore
ARM: KVM: Add banked registers save/restore
ARM: KVM: Add guest entry code
ARM: KVM: Add VFP lazy save/restore handler
ARM: KVM: Add the new world switch implementation
ARM: KVM: Add populating of fault data structure
ARM: KVM: Add HYP mode entry code
ARM: KVM: Add panic handling code
ARM: KVM: Change kvm_call_hyp return type to unsigned long
ARM: KVM: Remove the old world switch
ARM: KVM: Switch to C-based stage2 init
ARM: KVM: Remove __weak attributes
ARM: KVM: Turn CP15 defines to an enum
ARM: KVM: Cleanup asm-offsets.c
ARM: KVM: Remove unused hyp_pc field
ARM: KVM: Remove handling of ARM_EXCEPTION_DATA/PREF_ABORT
ARM: KVM: Remove __kvm_hyp_exit/__kvm_hyp_exit_end
arm/arm64: KVM: Handle out-of-RAM cache maintenance as a NOP
arm64: KVM: Switch to C-based stage2 init
arm/arm64: Add new is_kernel_in_hyp_mode predicate
arm64: Allow the arch timer to use the HYP timer
arm64: Add ARM64_HAS_VIRT_HOST_EXTN feature
arm64: KVM: Skip HYP setup when already running in HYP
arm64: KVM: VHE: Patch out use of HVC
arm64: KVM: VHE: Patch out kern_hyp_va
arm64: KVM: VHE: Introduce unified system register accessors
arm64: KVM: VHE: Differenciate host/guest sysreg save/restore
arm64: KVM: VHE: Split save/restore of registers shared between guest and host
arm64: KVM: VHE: Use unified system register accessors
arm64: KVM: VHE: Enable minimal sysreg save/restore
arm64: KVM: VHE: Make __fpsimd_enabled VHE aware
arm64: KVM: VHE: Implement VHE activate/deactivate_traps
arm64: KVM: VHE: Use unified sysreg accessors for timer
arm64: KVM: VHE: Add fpsimd enabling on guest access
arm64: KVM: VHE: Add alternative panic handling
arm64: KVM: Move most of the fault decoding to C
arm64: perf: Count EL2 events if the kernel is running in HYP
arm64: hw_breakpoint: Allow EL2 breakpoints if running in HYP
arm64: VHE: Add support for running Linux in EL2 mode
arm64: KVM: Move kvm/hyp/hyp.h to include/asm/kvm_hyp.h
arm64: KVM: Move vgic-v2 and timer save/restore to virt/kvm/arm/hyp
ARM: KVM: Move kvm/hyp/hyp.h to include/asm/kvm_hyp.h
ARM: KVM: Use common version of vgic-v2-sr.c
ARM: KVM: Use common version of timer-sr.c
arm64: KVM: Move __cpu_init_stage2 after kvm_call_hyp
arm64: KVM: Add temporary kvm_perf_event.h
arm64: KVM: Switch the sys_reg search to be a binary search
ARM: KVM: Properly sort the invariant table
ARM: KVM: Enforce sorting of all CP tables
ARM: KVM: Rename struct coproc_reg::is_64 to is_64bit
ARM: KVM: Switch the CP reg search to be a binary search
KVM: arm/arm64: timer: Add active state caching
KVM: arm/arm64: vgic-v2: Avoid accessing GICH registers
KVM: arm/arm64: vgic-v2: Save maintenance interrupt state only if required
KVM: arm/arm64: vgic-v2: Move GICH_ELRSR saving to its own function
KVM: arm/arm64: vgic-v2: Do not save an LR known to be empty
KVM: arm/arm64: vgic-v2: Reset LRs at boot time
KVM: arm/arm64: vgic-v2: Only wipe LRs on vcpu exit
KVM: arm/arm64: vgic-v2: Make GICD_SGIR quicker to hit
arm64: KVM: vgic-v3: Avoid accessing ICH registers
arm64: KVM: vgic-v3: Save maintenance interrupt state only if required
arm64: KVM: vgic-v3: Do not save an LR known to be empty
arm64: KVM: vgic-v3: Reset LRs at boot time
arm64: KVM: vgic-v3: Only wipe LRs on vcpu exit

Paolo Bonzini (28):
KVM: x86: introduce do_shl32_div32
KVM: APIC: remove unnecessary double checks on APIC existence
KVM: x86: consolidate "has lapic" checks into irq.c
KVM: x86: consolidate different ways to test for in-kernel LAPIC
Merge tag 'kvm-s390-next-4.6-1' of git://git.kernel.org/.../kvms390/linux into HEAD
KVM: x86: rename argument to kvm_set_tsc_khz
KVM: x86: rewrite handling of scaled TSC for kvmclock
KVM: x86: fix missed hardware breakpoints
KVM: x86: pass kvm_get_time_scale arguments in hertz
Merge branch 'kvm-ppc-next' of git://git.kernel.org/.../paulus/powerpc into HEAD
KVM: ensure __gfn_to_pfn_memslot initializes *writable
KVM: VMX: use vmcs_clear/set_bits for debug register exits
KVM: MMU: cleanup handle_abnormal_pfn
KVM: MMU: Fix ubsan warnings
KVM: i8254: drop local copy of mul_u64_u32_div
KVM: MMU: introduce kvm_mmu_flush_or_zap
KVM: MMU: move TLB flush out of __kvm_sync_page
KVM: MMU: use kvm_sync_page in kvm_sync_pages
KVM: MMU: cleanup __kvm_sync_page and its callers
KVM: MMU: invert return value of mmu.sync_page and *kvm_sync_page*
KVM: MMU: move zap/flush to kvm_mmu_get_page
KVM: MMU: coalesce more page zapping in mmu_sync_children
KVM: MMU: simplify last_pte_bitmap
KVM: MMU: micro-optimize gpte_access
Merge tag 'kvm-arm-for-4.6' of git://git.kernel.org/.../kvmarm/kvmarm into HEAD
KVM: x86: disable MPX if host did not enable MPX XSAVE features
KVM: x86: remove eager_fpu field of struct kvm_vcpu_arch
Merge tag 'kvm-s390-next-4.6-2' of git://git.kernel.org/.../kvms390/linux into HEAD

Radim KrÄmÃÅ (17):
KVM: x86: fix *NULL on invalid low-prio irq
KVM: i8254: change PIT discard tick policy
KVM: i8254: simplify atomics in kvm_pit_ack_irq
KVM: i8254: add kvm_pit_reset_reinject
KVM: i8254: use atomic_t instead of pit.inject_lock
KVM: i8254: tone down WARN_ON pit.state_lock
KVM: i8254: pass struct kvm_pit instead of kvm in PIT
KVM: i8254: remove unnecessary uses of PIT state lock
KVM: i8254: remove notifiers from PIT discard policy
KVM: i8254: refactor kvm_create_pit
KVM: i8254: refactor kvm_free_pit
KVM: i8254: remove pit and kvm from kvm_kpit_state
KVM: i8254: remove pointless dereference of PIT
KVM: i8254: don't assume layout of kvm_kpit_state
KVM: i8254: move PIT timer function initialization
KVM: i8254: turn kvm_kpit_state.reinject into atomic_t
KVM: document KVM_REINJECT_CONTROL ioctl

Shannon Zhao (19):
arm64: KVM: Define PMU data structure for each vcpu
arm64: KVM: Add access handler for PMCR register
arm64: KVM: Add access handler for PMSELR register
arm64: KVM: Add access handler for PMCEID0 and PMCEID1 register
arm64: KVM: Add access handler for event counter register
arm64: KVM: Add access handler for PMCNTENSET and PMCNTENCLR register
arm64: KVM: PMU: Add perf event map and introduce perf event creating function
arm64: KVM: Add access handler for event type register
arm64: KVM: Add access handler for PMINTENSET and PMINTENCLR register
arm64: KVM: Add access handler for PMOVSSET and PMOVSCLR register
arm64: KVM: Add access handler for PMSWINC register
arm64: KVM: Add helper to handle PMCR register bits
arm64: KVM: Add access handler for PMUSERENR register
arm64: KVM: Add PMU overflow interrupt routing
arm64: KVM: Reset PMU state when resetting vcpu
arm64: KVM: Free perf event of PMU when destroying vcpu
arm64: KVM: Add a new feature bit for PMUv3
arm64: KVM: Introduce per-vcpu kvm device controls
arm64: KVM: Add a new vcpu device control group for PMUv3

Suresh E. Warrier (2):
KVM: PPC: Book3S HV: Send IPI to host core to wake VCPU
KVM: PPC: Book3S HV: Add tunable to control H_IPI redirection

Suresh Warrier (7):
powerpc/smp: Support more IPI messages
powerpc/smp: Add smp_muxed_ipi_set_message
powerpc/xics: Add icp_native_cause_ipi_rm
KVM: PPC: Book3S HV: Host-side RM data structures
KVM: PPC: Book3S HV: Manage core host state
KVM: PPC: Book3S HV: kvmppc_host_rm_ops - handle offlining CPUs
KVM: PPC: Book3S HV: Host side kick VCPU when poked by real-mode KVM

Takuya Yoshikawa (2):
KVM: x86: MMU: Consolidate quickly_check_mmio_pf() and is_mmio_page_fault()
KVM: x86: MMU: Move handle_mmio_page_fault() call to kvm_mmu_page_fault()

Xiao Guangrong (12):
KVM: MMU: rename has_wrprotected_page to mmu_gfn_lpage_is_disallowed
KVM: MMU: introduce kvm_mmu_gfn_{allow,disallow}_lpage
KVM: MMU: introduce kvm_mmu_slot_gfn_write_protect
KVM: page track: add the framework of guest page tracking
KVM: page track: introduce kvm_slot_page_track_{add,remove}_page
KVM: MMU: let page fault handler be aware tracked page
KVM: MMU: clear write-flooding on the fast path of tracked page
KVM: page track: add notifier support
KVM: MMU: use page track for non-leaf shadow pages
KVM: MMU: simplify mmu_need_write_protect
KVM: MMU: apply page track notifier
KVM: MMU: check kvm_mmu_pages and mmu_page_path indices

Documentation/virtual/kvm/api.txt | 99 +++-
Documentation/virtual/kvm/devices/s390_flic.txt | 2 +
Documentation/virtual/kvm/devices/vcpu.txt | 33 ++
Documentation/virtual/kvm/devices/vm.txt | 52 ++
Documentation/virtual/kvm/mmu.txt | 6 +-
arch/arm/include/asm/kvm_asm.h | 41 +-
arch/arm/include/asm/kvm_emulate.h | 20 +-
arch/arm/include/asm/kvm_host.h | 80 ++-
arch/arm/include/asm/kvm_hyp.h | 139 +++++
arch/arm/include/asm/kvm_mmu.h | 2 +-
arch/arm/include/asm/virt.h | 9 +
arch/arm/kernel/asm-offsets.c | 40 +-
arch/arm/kernel/vmlinux.lds.S | 6 +
arch/arm/kvm/Makefile | 1 +
arch/arm/kvm/arm.c | 244 ++++++---
arch/arm/kvm/coproc.c | 126 +++--
arch/arm/kvm/coproc.h | 24 +-
arch/arm/kvm/emulate.c | 34 +-
arch/arm/kvm/guest.c | 5 +-
arch/arm/kvm/handle_exit.c | 7 -
arch/arm/kvm/hyp/Makefile | 17 +
arch/arm/kvm/hyp/banked-sr.c | 77 +++
arch/arm/kvm/hyp/cp15-sr.c | 84 +++
arch/arm/kvm/hyp/entry.S | 101 ++++
arch/arm/kvm/hyp/hyp-entry.S | 169 ++++++
arch/arm/kvm/hyp/s2-setup.c | 33 ++
arch/arm/kvm/hyp/switch.c | 232 +++++++++
arch/arm/kvm/hyp/tlb.c | 70 +++
arch/arm/kvm/hyp/vfp.S | 68 +++
arch/arm/kvm/init.S | 8 -
arch/arm/kvm/interrupts.S | 480 +-----------------
arch/arm/kvm/interrupts_head.S | 648 ------------------------
arch/arm/kvm/mmu.c | 23 +
arch/arm/kvm/reset.c | 2 +-
arch/arm64/Kconfig | 13 +
arch/arm64/include/asm/cpufeature.h | 6 +-
arch/arm64/include/asm/hw_breakpoint.h | 18 +-
arch/arm64/include/asm/kvm_arm.h | 6 +-
arch/arm64/include/asm/kvm_asm.h | 6 +-
arch/arm64/include/asm/kvm_emulate.h | 8 +
arch/arm64/include/asm/kvm_host.h | 34 +-
arch/arm64/include/asm/kvm_hyp.h | 181 +++++++
arch/arm64/include/asm/kvm_mmu.h | 12 +-
arch/arm64/include/asm/kvm_perf_event.h | 68 +++
arch/arm64/include/asm/virt.h | 10 +
arch/arm64/include/uapi/asm/kvm.h | 6 +
arch/arm64/kernel/asm-offsets.c | 3 -
arch/arm64/kernel/cpufeature.c | 11 +
arch/arm64/kernel/head.S | 28 +-
arch/arm64/kernel/perf_event.c | 6 +-
arch/arm64/kvm/Kconfig | 7 +
arch/arm64/kvm/Makefile | 1 +
arch/arm64/kvm/guest.c | 51 ++
arch/arm64/kvm/hyp-init.S | 15 +-
arch/arm64/kvm/hyp.S | 7 +
arch/arm64/kvm/hyp/Makefile | 8 +-
arch/arm64/kvm/hyp/debug-sr.c | 4 +-
arch/arm64/kvm/hyp/entry.S | 6 +
arch/arm64/kvm/hyp/hyp-entry.S | 109 ++--
arch/arm64/kvm/hyp/hyp.h | 90 ----
arch/arm64/kvm/hyp/s2-setup.c | 43 ++
arch/arm64/kvm/hyp/switch.c | 206 +++++++-
arch/arm64/kvm/hyp/sysreg-sr.c | 149 ++++--
arch/arm64/kvm/hyp/tlb.c | 2 +-
arch/arm64/kvm/hyp/vgic-v2-sr.c | 84 ---
arch/arm64/kvm/hyp/vgic-v3-sr.c | 341 ++++++++-----
arch/arm64/kvm/reset.c | 7 +
arch/arm64/kvm/sys_regs.c | 609 ++++++++++++++++++++--
arch/powerpc/include/asm/kvm_book3s_64.h | 2 -
arch/powerpc/include/asm/kvm_host.h | 5 +-
arch/powerpc/include/asm/kvm_ppc.h | 51 +-
arch/powerpc/include/asm/pgtable.h | 3 +
arch/powerpc/include/asm/smp.h | 4 +
arch/powerpc/include/asm/xics.h | 1 +
arch/powerpc/include/uapi/asm/kvm.h | 9 +
arch/powerpc/kernel/smp.c | 28 +-
arch/powerpc/kvm/Makefile | 2 +-
arch/powerpc/kvm/book3s.c | 2 +-
arch/powerpc/kvm/book3s_64_vio.c | 156 +++++-
arch/powerpc/kvm/book3s_64_vio_hv.c | 330 ++++++++++--
arch/powerpc/kvm/book3s_hv.c | 192 ++++++-
arch/powerpc/kvm/book3s_hv_builtin.c | 3 +
arch/powerpc/kvm/book3s_hv_rm_xics.c | 131 ++++-
arch/powerpc/kvm/book3s_hv_rmhandlers.S | 4 +-
arch/powerpc/kvm/book3s_pr_papr.c | 35 ++
arch/powerpc/kvm/powerpc.c | 38 +-
arch/powerpc/mm/pgtable.c | 8 +
arch/powerpc/perf/hv-24x7.c | 8 -
arch/powerpc/sysdev/xics/icp-native.c | 21 +
arch/s390/include/asm/kvm_host.h | 41 +-
arch/s390/include/uapi/asm/kvm.h | 8 +-
arch/s390/include/uapi/asm/sie.h | 1 +
arch/s390/kvm/gaccess.c | 57 ++-
arch/s390/kvm/gaccess.h | 38 +-
arch/s390/kvm/intercept.c | 78 +--
arch/s390/kvm/interrupt.c | 93 ++--
arch/s390/kvm/kvm-s390.c | 235 ++++++---
arch/s390/kvm/kvm-s390.h | 28 +-
arch/s390/kvm/priv.c | 15 +-
arch/x86/include/asm/kvm_host.h | 31 +-
arch/x86/include/asm/kvm_page_track.h | 61 +++
arch/x86/include/uapi/asm/hyperv.h | 4 +-
arch/x86/kvm/Makefile | 3 +-
arch/x86/kvm/assigned-dev.c | 14 +-
arch/x86/kvm/cpuid.c | 14 +-
arch/x86/kvm/cpuid.h | 9 +-
arch/x86/kvm/hyperv.c | 50 +-
arch/x86/kvm/i8254.c | 350 ++++++-------
arch/x86/kvm/i8254.h | 17 +-
arch/x86/kvm/ioapic.c | 30 +-
arch/x86/kvm/ioapic.h | 17 +-
arch/x86/kvm/irq.c | 9 +-
arch/x86/kvm/irq.h | 8 -
arch/x86/kvm/irq_comm.c | 27 +-
arch/x86/kvm/lapic.c | 156 ++++--
arch/x86/kvm/lapic.h | 17 +-
arch/x86/kvm/mmu.c | 502 ++++++++++--------
arch/x86/kvm/mmu.h | 5 +
arch/x86/kvm/page_track.c | 222 ++++++++
arch/x86/kvm/paging_tmpl.h | 35 +-
arch/x86/kvm/pmu.c | 2 +-
arch/x86/kvm/svm.c | 3 +-
arch/x86/kvm/trace.h | 12 +-
arch/x86/kvm/vmx.c | 85 ++--
arch/x86/kvm/x86.c | 158 +++---
arch/x86/kvm/x86.h | 16 +
drivers/clocksource/arm_arch_timer.c | 96 ++--
drivers/hv/hyperv_vmbus.h | 6 -
include/kvm/arm_arch_timer.h | 5 +
include/kvm/arm_pmu.h | 110 ++++
include/kvm/arm_vgic.h | 8 +-
include/trace/events/kvm.h | 9 +-
include/uapi/linux/kvm.h | 19 +-
virt/kvm/arm/arch_timer.c | 31 ++
{arch/arm64/kvm => virt/kvm/arm}/hyp/timer-sr.c | 14 +-
virt/kvm/arm/hyp/vgic-v2-sr.c | 170 +++++++
virt/kvm/arm/pmu.c | 529 +++++++++++++++++++
virt/kvm/arm/vgic-v2-emul.c | 10 +-
virt/kvm/arm/vgic-v2.c | 12 +
virt/kvm/arm/vgic-v3.c | 11 +-
virt/kvm/async_pf.c | 8 +-
virt/kvm/kvm_main.c | 37 +-
142 files changed, 6757 insertions(+), 2939 deletions(-)
create mode 100644 Documentation/virtual/kvm/devices/vcpu.txt
create mode 100644 arch/arm/include/asm/kvm_hyp.h
create mode 100644 arch/arm/kvm/hyp/Makefile
create mode 100644 arch/arm/kvm/hyp/banked-sr.c
create mode 100644 arch/arm/kvm/hyp/cp15-sr.c
create mode 100644 arch/arm/kvm/hyp/entry.S
create mode 100644 arch/arm/kvm/hyp/hyp-entry.S
create mode 100644 arch/arm/kvm/hyp/s2-setup.c
create mode 100644 arch/arm/kvm/hyp/switch.c
create mode 100644 arch/arm/kvm/hyp/tlb.c
create mode 100644 arch/arm/kvm/hyp/vfp.S
delete mode 100644 arch/arm/kvm/interrupts_head.S
create mode 100644 arch/arm64/include/asm/kvm_hyp.h
create mode 100644 arch/arm64/include/asm/kvm_perf_event.h
delete mode 100644 arch/arm64/kvm/hyp/hyp.h
create mode 100644 arch/arm64/kvm/hyp/s2-setup.c
delete mode 100644 arch/arm64/kvm/hyp/vgic-v2-sr.c
create mode 100644 arch/x86/include/asm/kvm_page_track.h
create mode 100644 arch/x86/kvm/page_track.c
create mode 100644 include/kvm/arm_pmu.h
rename {arch/arm64/kvm => virt/kvm/arm}/hyp/timer-sr.c (86%)
create mode 100644 virt/kvm/arm/hyp/vgic-v2-sr.c
create mode 100644 virt/kvm/arm/pmu.c