[GIT PULL] First batch of KVM changes for 4.7

From: Paolo Bonzini
Date: Thu May 19 2016 - 08:17:16 EST


Linus,

The following changes since commit 5e1b59abef69e405eabfbe0ad09ad6b6e5303c7d:

Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm (2016-04-13 08:53:26 -0700)

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 9842df62004f366b9fed2423e24df10542ee0dc5:

KVM: MTRR: remove MSR 0x2f8 (2016-05-18 18:04:32 +0200)

----------------------------------------------------------------
Small release overall.

- x86: miscellaneous fixes, AVIC support (local APIC virtualization,
AMD version)

- s390: polling for interrupts after a VCPU goes to halted state is
now enabled for s390; use hardware provided information about facility
bits that do not need any hypervisor activity, and other fixes for
cpu models and facilities; improve perf output; floating interrupt
controller improvements.

- MIPS: miscellaneous fixes

- PPC: bugfixes only

- ARM: 16K page size support, generic firmware probing layer for
timer and GIC

Christoffer Dall (KVM-ARM maintainer) says:
"There are a few changes in this pull request touching things outside
KVM, but they should all carry the necessary acks and it made the
merge process much easier to do it this way."

though actually the irqchip maintainers' acks didn't make it into the
patches. Marc Zyngier, who is both irqchip and KVM-ARM maintainer,
later acked at http://mid.gmane.org/573351D1.4060303@xxxxxxx
"more formally and for documentation purposes".

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

... Also, that caused conflicts with irqchip patches from the
tip tree. They aren't particularly nasty, but I've placed my
resolution anyway at refs/heads/merge-20160519 in the
git://git.kernel.org/pub/scm/virt/kvm/kvm.git repository.

Thanks,

Paolo

Alex Williamson (2):
irqbypass: Disallow NULL token
kvm: Conditionally register IRQ bypass consumer

Alexander Yarygin (3):
KVM: s390: Enable all facility bits that are known good for passthrough
s390/sclp: Add hmfai field
KVM: s390: Populate mask of non-hypervisor managed facility bits

Alexey Kardashevskiy (1):
KVM: PPC: Fix debug macros

Andy Honig (1):
KVM: MTRR: remove MSR 0x2f8

Borislav Petkov (1):
x86/kvm: Do not use BIT() in user-exported header

Bruce Rogers (1):
KVM: x86: fix ordering of cr0 initialization code in vmx_cpu_reset

Catalin Marinas (1):
kvm: arm64: Enable hardware updates of the Access Flag for Stage 2 page tables

Christian Borntraeger (4):
KVM: s390/perf: provide additional sigp events
KVM: halt_polling: provide a way to qualify wakeups during poll
KVM: s390: set halt polling to 80 microseconds
KVM: shrink halt polling even more for invalid wakeups

David Hildenbrand (7):
KVM: s390: cmma: don't check entry content
KVM: s390: support NQ only if the facility is enabled for the guest
KVM: s390: enable PFMFI only if guest has EDAT1
KVM: s390: enable SRS only if enabled for the guest
KVM: s390: cleanup cpuid handling
KVM: s390: force ibc into valid range
KVM: s390: document KVM_CAP_S390_RI

Eric Engestrom (1):
Documentation: virtual: fix spelling mistake

Gavin Shan (1):
KVM: PPC: Book3S HV: Fix build error in book3s_hv.c

Greg Kurz (2):
KVM: remove NULL return path for vcpu ids >= KVM_MAX_VCPUS
kvm: introduce KVM_MAX_VCPU_ID

Halil Pasic (3):
KVM: s390: implement has_attr for FLIC
KVM: s390: document FLIC behavior on unsupported
KVM: s390: add clear I/O irq operation for FLIC

James Hogan (5):
MIPS: KVM: Fix timer IRQ race when freezing timer
MIPS: KVM: Fix timer IRQ race when writing CP0_Compare
MIPS: KVM: Fix preemptable kvm_mips_get_*_asid() calls
MIPS: KVM: Fix preemption warning reading FPU capability
MIPS: KVM: Add missing disable FPU hazard barriers

Julien Grall (10):
clocksource: arm_arch_timer: Gather KVM specific information in a structure
clocksource: arm_arch_timer: Extend arch_timer_kvm_info to get the virtual IRQ
irqchip/gic-v2: Gather ACPI specific data in a single structure
irqchip/gic-v2: Parse and export virtual GIC information
irqchip/gic-v3: Prefix all pr_* messages by "GICv3: "
irqchip/gic-v3: Gather all ACPI specific data in a single structure
irqchip/gic-v3: Parse and export virtual GIC information
KVM: arm/arm64: arch_timer: Rely on the arch timer to parse the firmware tables
KVM: arm/arm64: vgic: Rely on the GIC driver to parse the firmware tables
clocksource: arm_arch_timer: Remove arch_timer_get_timecounter

Laurent Vivier (1):
KVM: PPC: Book3S PR: Manage single-step mode

Liang Chen (1):
KVM: x86: optimize steal time calculation

Marc Zyngier (1):
arm/arm64: KVM: Enforce Break-Before-Make on Stage-2 page tables

Paolo Bonzini (5):
KVM: add missing memory barrier in kvm_{make,check}_request
Merge tag 'kvm-s390-next-4.7-2' of git://git.kernel.org/.../kvms390/linux into HEAD
Merge tag 'kvm-arm-for-4.7' of git://git.kernel.org/.../kvmarm/kvmarm into HEAD
Merge branch 'kvm-ppc-next' of git://git.kernel.org/.../paulus/powerpc into HEAD
KVM: x86: make hwapic_isr_update and hwapic_irr_update look the same

Paul Mackerras (2):
KVM: PPC: Fix emulated MMIO sign-extension
KVM: PPC: Book3S HV: Re-enable XICS fast path for irqfd-generated interrupts

Radim KrÄmÃÅ (2):
Merge tag 'kvms390-20160420' of git://git.kernel.org/.../kvms390/linux into next
KVM: split kvm_vcpu_wake_up from kvm_vcpu_kick

Suravee Suthikulpanit (12):
KVM: x86: Misc LAPIC changes to expose helper functions
KVM: x86: Rename kvm_apic_get_reg to kvm_lapic_get_reg
KVM: x86: Introducing kvm_x86_ops VM init/destroy hooks
KVM: x86: Introducing kvm_x86_ops VCPU blocking/unblocking hooks
svm: Introduce new AVIC VMCB registers
KVM: x86: Detect and Initialize AVIC support
svm: Add interrupt injection via AVIC
svm: Add VMEXIT handlers for AVIC
KVM: x86: Introducing kvm_x86_ops.apicv_post_state_restore
svm: Do not expose x2APIC when enable AVIC
svm: Do not intercept CR8 when enable AVIC
svm: Manage vcpu load/unload when enable AVIC

Suzuki K Poulose (17):
arm64: Reuse TCR field definitions for EL1 and EL2
arm64: Cleanup VTCR_EL2 and VTTBR field values
kvm arm: Move fake PGD handling to arch specific files
arm64: Introduce pmd_thp_or_huge
kvm-arm: Replace kvm_pmd_huge with pmd_thp_or_huge
kvm-arm: Remove kvm_pud_huge()
kvm-arm: arm32: Introduce stage2 page table helpers
kvm-arm: arm: Introduce hyp page table empty checks
kvm-arm: arm64: Introduce stage2 page table helpers
kvm-arm: arm64: Introduce hyp page table empty checks
kvm-arm: Use explicit stage2 helper routines
kvm-arm: Add explicit hyp page table modifiers
kvm-arm: Add stage2 page table modifiers
kvm-arm: Cleanup kvm_* wrappers
kvm: arm64: Get rid of fake page table levels
kvm-arm: Cleanup stage2 pgd handling
arm64: kvm: Add support for 16K pages

Wanpeng Li (1):
kvm: robustify steal time record

Xiao Guangrong (1):
KVM: MMU: skip obsolete sp in for_each_gfn_*()

Documentation/virtual/kvm/api.txt | 18 +-
Documentation/virtual/kvm/devices/s390_flic.txt | 14 +-
arch/arm/include/asm/kvm_host.h | 2 +
arch/arm/include/asm/kvm_mmu.h | 43 +-
arch/arm/include/asm/stage2_pgtable.h | 61 +++
arch/arm/kvm/arm.c | 2 +-
arch/arm/kvm/mmu.c | 408 ++++++++-------
arch/arm64/include/asm/kvm_arm.h | 85 +--
arch/arm64/include/asm/kvm_host.h | 2 +
arch/arm64/include/asm/kvm_mmu.h | 111 +---
arch/arm64/include/asm/pgtable-hwdef.h | 80 ++-
arch/arm64/include/asm/pgtable.h | 15 +-
arch/arm64/include/asm/stage2_pgtable-nopmd.h | 42 ++
arch/arm64/include/asm/stage2_pgtable-nopud.h | 39 ++
arch/arm64/include/asm/stage2_pgtable.h | 142 +++++
arch/arm64/kvm/Kconfig | 1 -
arch/arm64/kvm/hyp/s2-setup.c | 8 +
arch/mips/include/asm/kvm_host.h | 4 +-
arch/mips/kvm/emulate.c | 89 ++--
arch/mips/kvm/mips.c | 9 +-
arch/mips/kvm/tlb.c | 26 +-
arch/mips/kvm/trap_emul.c | 2 +-
arch/powerpc/include/asm/kvm_host.h | 5 +
arch/powerpc/kvm/book3s.c | 1 +
arch/powerpc/kvm/book3s_hv.c | 1 +
arch/powerpc/kvm/book3s_pr.c | 32 +-
arch/powerpc/kvm/book3s_xics.c | 29 +-
arch/powerpc/kvm/book3s_xics.h | 1 +
arch/powerpc/kvm/booke.c | 1 +
arch/powerpc/kvm/powerpc.c | 22 +-
arch/s390/include/asm/kvm_host.h | 11 +-
arch/s390/include/asm/sclp.h | 1 +
arch/s390/include/asm/sigp.h | 1 +
arch/s390/include/uapi/asm/kvm.h | 1 +
arch/s390/include/uapi/asm/sie.h | 7 +-
arch/s390/kvm/Kconfig | 1 +
arch/s390/kvm/interrupt.c | 47 ++
arch/s390/kvm/kvm-s390.c | 61 ++-
arch/s390/kvm/priv.c | 21 +-
arch/s390/kvm/sigp.c | 6 +
arch/x86/include/asm/kvm_host.h | 32 +-
arch/x86/include/asm/svm.h | 12 +-
arch/x86/include/uapi/asm/kvm.h | 6 +-
arch/x86/include/uapi/asm/svm.h | 9 +-
arch/x86/kvm/ioapic.c | 2 +-
arch/x86/kvm/irq_comm.c | 3 -
arch/x86/kvm/lapic.c | 193 +++----
arch/x86/kvm/lapic.h | 38 +-
arch/x86/kvm/mmu.c | 28 +-
arch/x86/kvm/mtrr.c | 2 -
arch/x86/kvm/svm.c | 670 +++++++++++++++++++++++-
arch/x86/kvm/trace.h | 57 ++
arch/x86/kvm/vmx.c | 12 +-
arch/x86/kvm/x86.c | 64 ++-
drivers/clocksource/arm_arch_timer.c | 11 +-
drivers/irqchip/irq-gic-common.c | 13 +
drivers/irqchip/irq-gic-common.h | 3 +
drivers/irqchip/irq-gic-v3.c | 176 ++++++-
drivers/irqchip/irq-gic.c | 87 ++-
drivers/s390/char/sclp_early.c | 6 +-
include/clocksource/arm_arch_timer.h | 12 +-
include/kvm/arm_vgic.h | 7 +-
include/linux/irqbypass.h | 4 +-
include/linux/irqchip/arm-gic-common.h | 34 ++
include/linux/kvm_host.h | 39 +-
include/trace/events/kvm.h | 11 +-
include/uapi/linux/kvm.h | 1 +
virt/kvm/Kconfig | 3 +
virt/kvm/arm/arch_timer.c | 40 +-
virt/kvm/arm/vgic-v2.c | 61 +--
virt/kvm/arm/vgic-v3.c | 47 +-
virt/kvm/arm/vgic.c | 50 +-
virt/kvm/eventfd.c | 18 +-
virt/kvm/kvm_main.c | 32 +-
virt/lib/irqbypass.c | 12 +-
75 files changed, 2398 insertions(+), 849 deletions(-)
create mode 100644 arch/arm/include/asm/stage2_pgtable.h
create mode 100644 arch/arm64/include/asm/stage2_pgtable-nopmd.h
create mode 100644 arch/arm64/include/asm/stage2_pgtable-nopud.h
create mode 100644 arch/arm64/include/asm/stage2_pgtable.h
create mode 100644 include/linux/irqchip/arm-gic-common.h