[GIT PULL] KVM changes for 3.16

From: Paolo Bonzini
Date: Wed Jun 04 2014 - 06:58:29 EST


The following changes since commit 0f689a33ad17845363acdc6d52783befd6ad116c:

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux (2014-04-16 11:28:25 -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 820b3fcdeb80d30410f4427d2cbf9161c35fdeef:

KVM: add missing cleanup_srcu_struct (2014-06-03 13:44:17 +0200)

At over 200 commits, covering almost all supported architectures, this
was a pretty active cycle for KVM. Changes include:

- a lot of s390 changes: optimizations, support for migration,
GDB support and more

- ARM changes are pretty small: support for the PSCI 0.2 hypercall
interface on both the guest and the host (the latter acked by Catalin)

- initial POWER8 and little-endian host support

- support for running u-boot on embedded POWER targets

- pretty large changes to MIPS too, completing the userspace interface
and improving the handling of virtualized timer hardware

- for x86, a larger set of changes is scheduled for 3.17. Still,
we have a few emulator bugfixes and support for running nested
fully-virtualized Xen guests (para-virtualized Xen guests have
always worked). And some optimizations too.

The only missing architecture here is ia64. It's not a coincidence
that support for KVM on ia64 is scheduled for removal in 3.17.

Alexander Graf (27):
KVM: PPC: E500: Add dcbtls emulation
KVM: PPC: Book3S: PR: Fix C/R bit setting
KVM: PPC: Book3S_32: PR: Access HTAB in big endian
KVM: PPC: Book3S_64 PR: Access HTAB in big endian
KVM: PPC: Book3S_64 PR: Access shadow slb in big endian
KVM: PPC: Book3S PR: Default to big endian guest
KVM: PPC: Book3S PR: PAPR: Access HTAB in big endian
KVM: PPC: Book3S PR: PAPR: Access RTAS in big endian
KVM: PPC: PR: Fill pvinfo hcall instructions in big endian
KVM: PPC: Make shared struct aka magic page guest endian
KVM: PPC: Book3S PR: Do dcbz32 patching with big endian instructions
KVM: PPC: Book3S: Move little endian conflict to HV KVM
KVM: PPC: Book3S PR: Ignore PMU SPRs
KVM: PPC: Book3S PR: Emulate TIR register
KVM: PPC: Book3S PR: Handle Facility interrupt and FSCR
KVM: PPC: Book3S PR: Expose TAR facility to guest
KVM: PPC: Book3S PR: Expose EBB registers
KVM: PPC: Book3S PR: Expose TM registers
KVM: PPC: Disable NX for old magic page using guests
PPC: KVM: Make NX bit available with magic page
PPC: ePAPR: Fix hypercall on LE guest
KVM: PPC: Graciously fail broken LE hypercalls
KVM: PPC: MPIC: Reset IRQ source private members
KVM: PPC: Add CAP to indicate hcall fixes
KVM: PPC: Book3S PR: Use SLB entry 0
KVM: PPC: Book3S PR: Rework SLB switching code

Alexander Yarygin (4):
KVM: s390: add sie exit reasons tables
KVM: s390: Use trace tables from sie.h.
KVM: s390: decoder of SIE intercepted instructions
KVM: s390: Use intercept_insn decoder in trace event

Alexey Kardashevskiy (1):
KVM: PPC: Book3S HV: Fix dirty map for hugepages

Aneesh Kumar K.V (6):
KVM: PPC: BOOK3S: PR: Enable Little Endian PR guest
KVM: PPC: BOOK3S: PR: Fix WARN_ON with debug options on
KVM: PPC: BOOK3S: HV: Prefer CMA region for hash page table allocation
KVM: PPC: BOOK3S: HV: Add mixed page-size support for guest
KVM: PPC: BOOK3S: Always use the saved DAR value
KVM: PPC: BOOK3S: Remove open coded make_dsisr in alignment handler

Anup Patel (12):
KVM: Add capability to advertise PSCI v0.2 support
ARM/ARM64: KVM: Add common header for PSCI related defines
ARM/ARM64: KVM: Add base for PSCI v0.2 emulation
KVM: Documentation: Add info regarding KVM_ARM_VCPU_PSCI_0_2 feature
ARM/ARM64: KVM: Make kvm_psci_call() return convention more flexible
KVM: Add KVM_EXIT_SYSTEM_EVENT to user space API header
ARM/ARM64: KVM: Emulate PSCI v0.2 MIGRATE_INFO_TYPE and related functions
ARM/ARM64: KVM: Fix CPU_ON emulation for PSCI v0.2
ARM/ARM64: KVM: Advertise KVM_CAP_ARM_PSCI_0_2 to user space

Ashwin Chaugule (3):
PSCI: Add initial support for PSCIv0.2 functions
Documentation: devicetree: Add new binding for PSCIv0.2
ARM: Check if a CPU has gone offline

Bandan Das (7):
KVM: nVMX: Don't advertise single context invalidation for invept
KVM: nVMX: Ack and write vector info to intr_info if L1 asks us to
KVM: nVMX: Advertise support for interrupt acknowledgement
KVM: nVMX: rearrange get_vmx_mem_address
KVM: nVMX: additional checks on vmxon region
KVM: nVMX: fail on invalid vmclear/vmptrld pointer
KVM: nVMX: move vmclear and vmptrld pre-checks to nested_vmx_check_vmptr

Christian Borntraeger (2):
KVM: s390: Drop pending interrupts on guest exit
kvm/irqchip: Speed up KVM_SET_GSI_ROUTING

Christoffer Dall (1):
arm: Fix compile warning for psci

Cornelia Huck (1):
KVM: s390: reinject io interrupt on tpi failure

Dan Carpenter (1):
KVM: s390: return -EFAULT if copy_from_user() fails

Dave Hansen (1):
x86: fix page fault tracing when KVM guest support enabled

David Hildenbrand (13):
KVM: s390: extract irq parameters of intercepted program irqs
KVM: s390: deliver program irq parameters and use correct ilc
KVM: s390: emulate stctl and stctg
KVM: s390: kernel header addition for guest debugging
KVM: s390: hardware support for guest debugging
KVM: s390: add documentation for diag 501
KVM: s390: move timer interrupt checks into own functions
KVM: s390: no timer interrupts when single-stepping a guest
KVM: s390: introduce kvm_s390_vcpu_{start,stop}
KVM: s390: enable IBS for single running VCPUs
KVM: s390: interpretive execution of SIGP EXTERNAL CALL
KVM: s390: check the given debug flags, not the set ones
KVM: s390: a VCPU is already started when delivering interrupts

Deng-Cheng Zhu (1):
MIPS: KVM: remove the stale memory alias support function unalias_gfn

Dominik Dingel (8):
KVM: s390: Adding skey bit to mmu context
KVM: s390: Clear storage keys
KVM: s390: Allow skeys to be enabled for the current process
KVM: s390: Don't enable skeys by default
KVM: s390/mm: new gmap_test_and_clear_dirty function
KVM: s390: Per-vm kvm device controls
KVM: s390: make cmma usage conditionally
KVM: s390: Exploiting generic userspace interface for cmma

Gabriel L. Somlo (1):
kvm: x86: emulate monitor and mwait instructions as nop

Heiko Carstens (27):
KVM: add kvm_is_error_gpa() helper
KVM: s390: export test_vfacility()
s390/ptrace: add struct psw and accessor function
s390/ctl_reg: add union type for control register 0
KVM: s390: add kvm_s390_logical_to_effective() helper
KVM: s390: add 'pgm' member to kvm_vcpu_arch and helper function
KVM: s390: add lowcore access functions
KVM: s390: add architecture compliant guest access functions
KVM: s390/sclp: correctly set eca siif bit
KVM: s390: make use of ipte lock
KVM: s390: convert __do_deliver_interrupt()
KVM: s390: convert handle_stfl()
KVM: s390: convert pfault code
KVM: s390: convert handle_prog()
KVM: s390: convert kvm_s390_store_status_unloaded()
KVM: s390: convert __sigp_set_prefix()/handle_set_prefix()
KVM: s390: convert handle_set_clock()
KVM: s390: convert handle_store_prefix()
KVM: s390: convert handle_store_cpu_address()
KVM: s390: convert handle_test_block()
KVM: s390: convert handle_tpi()
KVM: s390: convert handle_lpsw[e]()
KVM: s390: convert handle_stidp()
KVM: s390: convert handle lctl[g]()
KVM: s390: convert handle_stsi()
KVM: s390: remove old guest access functions
KVM: s390: cleanup kvm_s390_real_to_abs()

Huw Davies (1):
KVM: VMX: Advance rip to after an ICEBP instruction

James Hogan (23):
MIPS: KVM: Allocate at least 16KB for exception handlers
MIPS: Export local_flush_icache_range for KVM
MIPS: KVM: Use local_flush_icache_range to fix RI on XBurst
MIPS: KVM: Use tlb_write_random
MIPS: KVM: Add CP0_EPC KVM register access
MIPS: KVM: Move KVM_{GET,SET}_ONE_REG definitions into kvm_host.h
MIPS: KVM: Add CP0_Count/Compare KVM register access
MIPS: KVM: Add CP0_UserLocal KVM register access
MIPS: KVM: Add CP0_HWREna KVM register access
MIPS: KVM: Deliver guest interrupts after local_irq_disable()
MIPS: KVM: Fix timer race modifying guest CP0_Cause
MIPS: KVM: Migrate hrtimer to follow VCPU
MIPS: KVM: Rewrite count/compare timer emulation
MIPS: KVM: Override guest kernel timer frequency directly
MIPS: KVM: Add master disable count interface
MIPS: KVM: Add count frequency KVM register
MIPS: KVM: Make kvm_mips_comparecount_{func,wakeup} static
MIPS: KVM: Whitespace fixes in kvm_mips_callbacks
MIPS: KVM: Fix kvm_debug bit-rottage
MIPS: KVM: Remove ifdef DEBUG around kvm_debug
MIPS: KVM: Quieten kvm_info() logging
MIPS: KVM: Remove redundant NULL checks before kfree()
MIPS: KVM: Remove redundant semicolon

Jan Kiszka (1):
KVM: x86: Fix CR3 reserved bits check in long mode

Jason J. Herne (1):
KVM: s390: Add proper dirty bitmap support to S390 kvm.

Jens Freimann (6):
KVM: s390: allow injecting every kind of interrupt
KVM: s390: convert local irqs in __do_deliver_interrupt()
s390: fix name of lowcore field at offset 0xa3
s390: rename and split lowcore field per_perc_atmid
s390: add fields to lowcore definition
KVM: s390: clean up interrupt injection in sigp code

Marc Zyngier (1):
arm64: KVM: Enable minimalistic support for Cortex-A53

Marcelo Tosatti (2):
Merge tag 'kvm-s390-20140422' of git://git.kernel.org/.../kvms390/linux into queue
KVM: x86: expose invariant tsc cpuid bit (v2)

Martin Schwidefsky (2):
KVM: s390/mm: use software dirty bit detection for user dirty tracking
KVM: s390: correct locking for s390_enable_skey

Matthew Rosato (1):
KVM: s390: Intercept the tprot instruction

Michael Mueller (4):
KVM: s390: replace TDB_ADDR by __LC_PGM_TDB
KVM: s390: Factor out handle_itdb to handle TX aborts
s390/sclp: add sclp_get_ibc function
KVM: s390: split SIE state guest prefix field

Michael S. Tsirkin (3):
KVM: support any-length wildcard ioeventfd
KVM: VMX: speed up wildcard MMIO EVENTFD
kvm/x86: implement hv EOI assist

Nadav Amit (10):
KVM: x86: Fix page-tables reserved bits
KVM: x86: Fix CR3 and LDT sel should not be saved in TSS
KVM: x86: Fix wrong/stuck PMU when guest does not use PMI
KVM: x86: Fix CR3 reserved bits
KVM: x86: IN instruction emulation should ignore REP-prefix
KVM: x86: Processor mode may be determined incorrectly
KVM: vmx: handle_dr does not handle RSP correctly
KVM: x86: Mark bit 7 in long-mode PDPTE according to 1GB pages support
KVM: vmx: DR7 masking on task switch emulation is wrong
KVM: x86: MOV CR/DR emulation should ignore mod

Oleg Nesterov (2):
KVM: async_pf: kill the unnecessary use_mm/unuse_mm async_pf_execute()
KVM: async_pf: change async_pf_execute() to use get_user_pages(tsk => NULL)

Paolo Bonzini (12):
Merge tag 'kvm-s390-20140429' of git://git.kernel.org/.../kvms390/linux into kvm-next
Merge tag 'kvm-s390-20140506' of git://git.kernel.org/.../kvms390/linux into kvm-next
Merge tag 'kvm-s390-20140516' of git://git.kernel.org/.../kvms390/linux into kvm-next
KVM: x86: use new CS.RPL as CPL during task switch
KVM: x86: drop set_rflags callback
KVM: x86: check CS.DPL against RPL during task switch
KVM: x86: get CPL from SS.DPL
KVM: lapic: sync highest ISR to hardware apic on EOI
Merge tag 'kvm-arm-for-3.16' of git://git.kernel.org/.../kvmarm/kvmarm into kvm-next
Merge tag 'kvm-s390-20140530' of git://git.kernel.org/.../kvms390/linux into kvm-next
Merge tag 'signed-kvm-ppc-next' of git://github.com/agraf/linux-2.6 into kvm-next
KVM: add missing cleanup_srcu_struct

Paul Mackerras (7):
KVM: PPC: Book3S: Add ONE_REG register names that were missed
KVM: PPC: Book3S: Move KVM_REG_PPC_WORT to an unused register number
KVM: PPC: Book3S HV: Fix check for running inside guest in global_invalidates()
KVM: PPC: Book3S HV: Put huge-page HPTEs in rmap chain for base address
KVM: PPC: Book3S HV: Make sure we don't miss dirty pages
KVM: PPC: Book3S HV: Work around POWER8 performance monitor bugs
KVM: PPC: Book3S HV: Fix machine check delivery to guest

Thomas Huth (12):
KVM: s390: Handle MVPG partial execution interception
KVM: s390: Add a function for checking the low-address protection
KVM: s390: Fixes for PFMF
KVM: s390: Add low-address protection to TEST BLOCK
KVM: s390: Add clock comparator and CPU timer IRQ injection
KVM: s390: Fix external interrupt interception
KVM: s390: Improve is_valid_psw()
KVM: s390: Avoid endless loops of specification exceptions
KVM: s390: Introduce helper function for faulting-in a guest page
KVM: s390: Improved MVPG partial execution handler
KVM: s390: Add a generic function for translating guest addresses
KVM: s390: Enable DAT support for TPROT handler

Ulrich Obergfell (1):
KVM: x86: improve the usability of the 'kvm_pio' tracepoint

Xiao Guangrong (5):
Revert "KVM: Simplify kvm->tlbs_dirty handling"
KVM: MMU: properly check last spte in fast_page_fault()
KVM: MMU: lazily drop large spte
KVM: MMU: flush tlb if the spte can be locklessly modified
KVM: MMU: flush tlb out of mmu lock when write-protect the sptes

Documentation/devicetree/bindings/arm/psci.txt | 37 +-
Documentation/virtual/kvm/api.txt | 33 +-
Documentation/virtual/kvm/devices/vm.txt | 26 +
Documentation/virtual/kvm/ppc-pv.txt | 14 +
Documentation/virtual/kvm/s390-diag.txt | 2 +
arch/arm/include/asm/kvm_host.h | 2 +-
arch/arm/include/asm/kvm_psci.h | 6 +-
arch/arm/include/asm/psci.h | 7 +-
arch/arm/include/uapi/asm/kvm.h | 10 +-
arch/arm/kernel/psci.c | 196 +++++--
arch/arm/kernel/psci_smp.c | 33 ++
arch/arm/kvm/arm.c | 1 +
arch/arm/kvm/handle_exit.c | 10 +-
arch/arm/kvm/psci.c | 235 +++++++-
arch/arm64/include/asm/cpu_ops.h | 2 +
arch/arm64/include/asm/cputype.h | 1 +
arch/arm64/include/asm/kvm_host.h | 2 +-
arch/arm64/include/asm/kvm_psci.h | 6 +-
arch/arm64/include/asm/psci.h | 2 +-
arch/arm64/include/uapi/asm/kvm.h | 13 +-
arch/arm64/kernel/psci.c | 231 ++++++--
arch/arm64/kernel/smp.c | 22 +
arch/arm64/kvm/guest.c | 2 +
arch/arm64/kvm/handle_exit.c | 10 +-
arch/arm64/kvm/sys_regs_generic_v8.c | 2 +
arch/mips/Kconfig | 12 +-
arch/mips/include/asm/kvm_host.h | 183 +++++--
arch/mips/include/uapi/asm/kvm.h | 35 ++
arch/mips/kvm/kvm_locore.S | 32 --
arch/mips/kvm/kvm_mips.c | 145 ++---
arch/mips/kvm/kvm_mips_dyntrans.c | 15 +-
arch/mips/kvm/kvm_mips_emul.c | 557 ++++++++++++++++++-
arch/mips/kvm/kvm_tlb.c | 77 +--
arch/mips/kvm/kvm_trap_emul.c | 86 ++-
arch/mips/mm/cache.c | 1 +
arch/mips/mti-malta/malta-time.c | 14 +-
arch/powerpc/include/asm/disassemble.h | 34 ++
arch/powerpc/include/asm/kvm_asm.h | 18 +-
arch/powerpc/include/asm/kvm_book3s.h | 3 +-
arch/powerpc/include/asm/kvm_book3s_64.h | 146 ++++-
arch/powerpc/include/asm/kvm_book3s_asm.h | 2 +
arch/powerpc/include/asm/kvm_booke.h | 5 -
arch/powerpc/include/asm/kvm_host.h | 9 +-
arch/powerpc/include/asm/kvm_ppc.h | 80 ++-
arch/powerpc/include/asm/reg.h | 12 +-
arch/powerpc/include/asm/reg_booke.h | 1 +
arch/powerpc/include/uapi/asm/kvm.h | 2 +-
arch/powerpc/include/uapi/asm/kvm_para.h | 6 +
arch/powerpc/kernel/align.c | 34 +-
arch/powerpc/kernel/asm-offsets.c | 11 +-
arch/powerpc/kernel/epapr_paravirt.c | 5 +-
arch/powerpc/kernel/kvm.c | 2 +-
arch/powerpc/kernel/paca.c | 3 +
arch/powerpc/kvm/Kconfig | 2 +-
arch/powerpc/kvm/book3s.c | 106 ++--
arch/powerpc/kvm/book3s_32_mmu.c | 41 +-
arch/powerpc/kvm/book3s_32_mmu_host.c | 4 +-
arch/powerpc/kvm/book3s_64_mmu.c | 39 +-
arch/powerpc/kvm/book3s_64_mmu_host.c | 15 +-
arch/powerpc/kvm/book3s_64_mmu_hv.c | 116 ++--
arch/powerpc/kvm/book3s_64_slb.S | 87 ++-
arch/powerpc/kvm/book3s_emulate.c | 156 ++++--
arch/powerpc/kvm/book3s_exports.c | 1 +
arch/powerpc/kvm/book3s_hv.c | 48 +-
arch/powerpc/kvm/book3s_hv_rm_mmu.c | 3 +-
arch/powerpc/kvm/book3s_hv_rmhandlers.S | 60 +-
arch/powerpc/kvm/book3s_interrupts.S | 23 +-
arch/powerpc/kvm/book3s_paired_singles.c | 16 +-
arch/powerpc/kvm/book3s_pr.c | 238 ++++++--
arch/powerpc/kvm/book3s_pr_papr.c | 16 +-
arch/powerpc/kvm/book3s_rtas.c | 29 +
arch/powerpc/kvm/book3s_segment.S | 25 +
arch/powerpc/kvm/e500_emulate.c | 15 +
arch/powerpc/kvm/emulate.c | 24 +-
arch/powerpc/kvm/mpic.c | 5 +-
arch/powerpc/kvm/powerpc.c | 64 ++-
arch/powerpc/kvm/trace_pr.h | 2 +-
arch/powerpc/mm/slb.c | 2 +-
arch/s390/include/asm/ctl_reg.h | 14 +
arch/s390/include/asm/kvm_host.h | 163 +++++-
arch/s390/include/asm/lowcore.h | 10 +-
arch/s390/include/asm/mmu.h | 2 +
arch/s390/include/asm/mmu_context.h | 1 +
arch/s390/include/asm/pgalloc.h | 3 +-
arch/s390/include/asm/pgtable.h | 169 +++---
arch/s390/include/asm/ptrace.h | 44 ++
arch/s390/include/asm/sclp.h | 8 +-
arch/s390/include/uapi/asm/kvm.h | 28 +
arch/s390/include/uapi/asm/sie.h | 245 +++++++++
arch/s390/kernel/asm-offsets.c | 14 +-
arch/s390/kernel/entry.S | 4 +-
arch/s390/kernel/entry64.S | 4 +-
arch/s390/kvm/Makefile | 4 +-
arch/s390/kvm/diag.c | 19 +-
arch/s390/kvm/gaccess.c | 726 +++++++++++++++++++++++++
arch/s390/kvm/gaccess.h | 379 ++++++++++---
arch/s390/kvm/guestdbg.c | 482 ++++++++++++++++
arch/s390/kvm/intercept.c | 222 +++++++-
arch/s390/kvm/interrupt.c | 400 ++++++++++----
arch/s390/kvm/kvm-s390.c | 554 +++++++++++++++----
arch/s390/kvm/kvm-s390.h | 73 ++-
arch/s390/kvm/priv.c | 357 ++++++++----
arch/s390/kvm/sigp.c | 103 ++--
arch/s390/kvm/trace-s390.h | 43 ++
arch/s390/kvm/trace.h | 99 ++--
arch/s390/mm/pgtable.c | 89 ++-
arch/x86/include/asm/kvm_emulate.h | 1 -
arch/x86/include/asm/kvm_host.h | 7 +-
arch/x86/include/asm/traps.h | 5 +
arch/x86/kernel/kvm.c | 2 +-
arch/x86/kvm/cpuid.c | 11 +-
arch/x86/kvm/cpuid.h | 7 +
arch/x86/kvm/emulate.c | 93 ++--
arch/x86/kvm/irq.c | 1 +
arch/x86/kvm/lapic.c | 62 ++-
arch/x86/kvm/mmu.c | 84 ++-
arch/x86/kvm/mmu.h | 33 ++
arch/x86/kvm/paging_tmpl.h | 7 +-
arch/x86/kvm/pmu.c | 7 +-
arch/x86/kvm/svm.c | 63 ++-
arch/x86/kvm/trace.h | 20 +-
arch/x86/kvm/vmx.c | 333 +++++++-----
arch/x86/kvm/x86.c | 61 +--
drivers/s390/char/sclp_early.c | 34 +-
include/linux/kvm_host.h | 15 +-
include/uapi/linux/Kbuild | 1 +
include/uapi/linux/kvm.h | 17 +-
include/uapi/linux/psci.h | 90 +++
virt/kvm/async_pf.c | 4 +-
virt/kvm/eventfd.c | 68 ++-
virt/kvm/irq_comm.c | 17 +-
virt/kvm/irqchip.c | 31 +-
virt/kvm/kvm_main.c | 25 +-
133 files changed, 7181 insertions(+), 1749 deletions(-)
create mode 100644 Documentation/virtual/kvm/devices/vm.txt
create mode 100644 arch/s390/include/uapi/asm/sie.h
create mode 100644 arch/s390/kvm/gaccess.c
create mode 100644 arch/s390/kvm/guestdbg.c
create mode 100644 include/uapi/linux/psci.h
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/