[GIT PULL] KVM updates for 2.6.29-rc

From: Avi Kivity
Date: Thu Jan 01 2009 - 04:59:50 EST


Linus, please pull from

git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm.git kvm-updates/2.6.29

for the 2.6.29 cycle KVM updates. These include improved NMI support,
emulator improvements, better integration with kdump and emergency reboot,
MTRR support, MSI for assigned devices, some MMU performance optimizations,
arch updates, and random fixes.

Amit Shah (4):
KVM: x86: Fix typo in function name
KVM: SVM: Set the 'g' bit of the cs selector for cross-vendor migration
KVM: SVM: Set the 'busy' flag of the TR selector
KVM: x86 emulator: Fix handling of VMMCALL instruction

Avi Kivity (13):
KVM: VMX: Conditionally request interrupt window after injecting irq
KVM: x86 emulator: reduce duplication in one operand emulation thunks
KVM: x86 emulator: consolidate emulation of two operand instructions
KVM: x86 emulator: Extract 'pop' sequence into a function
KVM: x86 emulator: allow pop from mmio
KVM: x86 emulator: switch 'pop reg' instruction to emulate_pop()
KVM: x86 emulator: fix ret emulation
KVM: x86 emulator: fix popf emulation
KVM: Remove extraneous semicolon after do/while
KVM: Advertise the bug in memory region destruction as fixed
KVM: Consolidate userspace memory capability reporting into common code
KVM: MMU: Don't treat a global pte as such if cr4.pge is cleared
KVM: Add locking to virtual i8259 interrupt controller

Christian Borntraeger (4):
KVM: s390: Fix refcounting and allow module unload
KVM: s390: Fix memory leak of vcpu->run
anon_inodes: use fops->owner for module refcount
KVM: set owner of cpu and vm file operations

Eduardo Habkost (13):
KVM: VMX: move vmx.h to include/asm
KVM: SVM: move svm.h to include/asm
KVM: VMX: move ASM_VMX_* definitions from asm/kvm_host.h to asm/vmx.h
KVM: VMX: move cpu_has_kvm_support() to an inline on asm/virtext.h
x86: asm/virtext.h: add cpu_vmxoff() inline function
KVM: VMX: extract kvm_cpu_vmxoff() from hardware_disable()
x86: cpu_emergency_vmxoff() function
KVM: SVM: move has_svm() code to asm/virtext.h
KVM: SVM: move svm_hardware_disable() code to asm/virtext.h
x86: cpu_emergency_svm_disable() function
kdump: forcibly disable VMX and SVM on machine_crash_shutdown()
x86: disable VMX on all CPUs on reboot
x86: KVM guest: kvm_get_tsc_khz: return khz, not lpj

Glauber Costa (2):
x86: KVM guest: sign kvmclock as paravirt
KVM: Really remove a slot when a user ask us so

Gleb Natapov (1):
KVM: call kvm_arch_vcpu_reset() instead of the kvm_x86_ops callback

Guillaume Thouvenin (9):
KVM: x86 emulator: consolidate push reg
KVM: x86 emulator: Add decode entries for 0x04 and 0x05 opcodes (add acc, imm)
KVM: allow emulator to adjust rip for emulated pio instructions
KVM: VMX: Handle mmio emulation when guest state is invalid
KVM: x86 emulator: Extend the opcode descriptor
KVM: x86 emulator: add Src2 decode set
KVM: x86 emulator: add a new "implied 1" Src decode type
KVM: x86 emulator: add the assembler code for three operands
KVM: x86 emulator: add the emulation of shld and shrd instructions

Hannes Eder (2):
KVM: fix sparse warning
KVM: VMX: fix sparse warning

Hollis Blanchard (25):
KVM: ppc: Move 440-specific TLB code into 44x_tlb.c
KVM: ppc: Rename "struct tlbe" to "struct kvmppc_44x_tlbe"
KVM: ppc: combine booke_guest.c and booke_host.c
KVM: ppc: Refactor powerpc.c to relocate 440-specific code
ppc: Create disassemble.h to extract instruction fields
KVM: ppc: refactor instruction emulation into generic and core-specific pieces
KVM: ppc: Move the last bits of 44x code out of booke.c
KVM: ppc: create struct kvm_vcpu_44x and introduce container_of() accessor
KVM: ppc: adjust vcpu types to support 64-bit cores
KVM: ppc: fix set regs to take care of msr change
KVM: ppc: optimize kvm stat handling
KVM: ppc: optimize find first bit
KVM: ppc: optimize irq delivery path
KVM: ppc: improve trap emulation
KVM: ensure that memslot userspace addresses are page-aligned
KVM: ppc: fix Kconfig constraints
KVM: ppc: use MMUCR accessor to obtain TID
KVM: ppc: use prefetchable mappings for guest memory
KVM: ppc: fix userspace mapping invalidation on context switch
KVM: ppc: support large host pages
powerpc/44x: declare tlb_44x_index for use in C code
KVM: ppc: directly insert shadow mappings into the hardware TLB
KVM: ppc: save and restore guest mappings on context switch
KVM: ppc: Implement in-kernel exit timing statistics
KVM: ppc: mostly cosmetic updates to the exit timing accounting code

Izik Eidus (1):
KVM: MMU: Fix aliased gfns treated as unaliased

Jan Kiszka (17):
KVM: VMX: include all IRQ window exits in statistics
KVM: VMX: Use INTR_TYPE_NMI_INTR instead of magic value
KVM: VMX: Support for NMI task gates
KVM: x86: Reset pending/inject NMI state on CPU reset
KVM: VMX: refactor/fix IRQ and NMI injectability determination
KVM: VMX: refactor IRQ and NMI window enabling
KVM: VMX: fix real-mode NMI support
KVM: x86: Enable NMI Watchdog via in-kernel PIT source
KVM: x86: VCPU with pending NMI is runnabled
KVM: Kick NMI receiving VCPU
KVM: x86: Support for user space injected NMIs
KVM: VMX: Provide support for user space injected NMIs
KVM: VMX: work around lacking VNMI support
KVM: x86: Fix and refactor NMI watchdog emulation
KVM: x86: Optimize NMI watchdog delivery
KVM: VMX: Fix pending NMI-vs.-IRQ race for user space irqchip
KVM: x86: Rework user space NMI injection as KVM_CAP_USER_NMI

Jes Sorensen (1):
KVM: ia64: Fix kvm_arch_vcpu_ioctl_[gs]et_regs()

Marcelo Tosatti (7):
KVM: MMU: optimize set_spte for page sync
KVM: MMU: use page array in unsync walk
KVM: MMU: collapse remote TLB flushes on root sync
KVM: MMU: skip global pgtables on sync due to cr3 switch
KVM: MMU: prepopulate the shadow on invlpg
KVM: MMU: check for present pdptr shadow page in walk_shadow
KVM: MMU: handle large host sptes on invlpg/resync

Mark McLoughlin (6):
KVM: remove the IRQ ACK notifier assertions
KVM: make kvm_unregister_irq_ack_notifier() safe
KVM: don't free an unallocated irq source id
KVM: add KVM_USERSPACE_IRQ_SOURCE_ID assertions
KVM: split out kvm_free_assigned_irq()
KVM: fix handling of ACK from shared guest IRQ

Nitin A Kamble (2):
KVM: Fix cpuid leaf 0xb loop termination
KVM: Fix cpuid iteration on multiple leaves per eac

Rusty Russell (3):
KVM: Extract core of kvm_flush_remote_tlbs/kvm_reload_remote_mmus
KVM: use modern cpumask primitives, no cpumask_t on stack
KVM: use cpumask_var_t for cpus_hardware_enabled

Sheng Yang (21):
x86: Rename mtrr_state struct and macro names
x86: Export some definition of MTRR
KVM: Improve MTRR structure
KVM: VMX: Add PAT support for EPT
KVM: Add local get_mtrr_type() to support MTRR
KVM: Enable MTRR for EPT
KVM: Clean up kvm_x86_emulate.h
KVM: MMU: Extend kvm_mmu_page->slot_bitmap size
KVM: VMX: Move private memory slot position
KVM: IRQ ACK notifier should be used with in-kernel irqchip
KVM: Enable Function Level Reset for assigned device
KVM: Fix kernel allocated memory slot
KVM: Move ack notifier register and IRQ sourcd ID request
KVM: Separate update irq to a single function
KVM: Replace irq_requested with more generic irq_requested_type
KVM: Clean up assigned_device_update_irq
KVM: Add fields for MSI device assignment
KVM: Export ioapic_get_delivery_bitmask
KVM: Add assigned_device_msi_dispatch()
KVM: Enable MSI for device assignment
KVM: MSI to INTx translate

Wu Fengguang (1):
KVM: Prevent trace call into unloaded module text

Xiantao Zhang (8):
KVM: ia64: Re-organize data sturure of guests' data area
KVM: ia64: Remove lock held by halted vcpu
KVM: ia64: Remove some macro definitions in asm-offsets.c.
KVM: ia64: Define printk function for kvm-intel module
KVM: ia64: Add some debug points to provide crash infomation
KVM: ia64: Add handler for crashed vmm
KVM: ia64: Clean up vmm_ivt.S using tab to indent every line
MAINTAINERS: Maintainership changes for kvm/ia64

MAINTAINERS | 2 -
arch/ia64/include/asm/kvm.h | 6 +-
arch/ia64/include/asm/kvm_host.h | 196 +++--
arch/ia64/kvm/Makefile | 2 +-
arch/ia64/kvm/asm-offsets.c | 11 +-
arch/ia64/kvm/kvm-ia64.c | 107 +--
arch/ia64/kvm/kvm_lib.c | 15 +
arch/ia64/kvm/kvm_minstate.h | 4 +-
arch/ia64/kvm/misc.h | 3 +-
arch/ia64/kvm/mmio.c | 38 +-
arch/ia64/kvm/process.c | 29 +-
arch/ia64/kvm/vcpu.c | 76 ++-
arch/ia64/kvm/vcpu.h | 5 +-
arch/ia64/kvm/vmm.c | 29 +
arch/ia64/kvm/vmm_ivt.S | 1469 +++++++++++++--------------
arch/ia64/kvm/vtlb.c | 4 +-
arch/powerpc/include/asm/disassemble.h | 80 ++
arch/powerpc/include/asm/kvm_44x.h | 61 ++
arch/powerpc/include/asm/kvm_host.h | 116 ++-
arch/powerpc/include/asm/kvm_ppc.h | 83 +-
arch/powerpc/include/asm/mmu-44x.h | 1 +
arch/powerpc/kernel/asm-offsets.c | 21 +-
arch/powerpc/kvm/44x.c | 228 +++++
arch/powerpc/kvm/44x_emulate.c | 371 +++++++
arch/powerpc/kvm/44x_tlb.c | 463 +++++++--
arch/powerpc/kvm/44x_tlb.h | 26 +-
arch/powerpc/kvm/Kconfig | 28 +-
arch/powerpc/kvm/Makefile | 12 +-
arch/powerpc/kvm/{booke_guest.c => booke.c} | 418 ++++-----
arch/powerpc/kvm/booke.h | 60 ++
arch/powerpc/kvm/booke_host.c | 83 --
arch/powerpc/kvm/booke_interrupts.S | 72 +-
arch/powerpc/kvm/emulate.c | 447 +--------
arch/powerpc/kvm/powerpc.c | 130 +---
arch/powerpc/kvm/timing.c | 239 +++++
arch/powerpc/kvm/timing.h | 102 ++
arch/s390/kvm/kvm-s390.c | 41 +-
arch/x86/include/asm/kvm_host.h | 45 +-
arch/x86/include/asm/kvm_x86_emulate.h | 11 +-
arch/x86/include/asm/mtrr.h | 25 +
arch/x86/{kvm => include/asm}/svm.h | 0
arch/x86/include/asm/virtext.h | 132 +++
arch/x86/{kvm => include/asm}/vmx.h | 27 +-
arch/x86/kernel/cpu/mtrr/generic.c | 12 +-
arch/x86/kernel/cpu/mtrr/main.c | 4 +-
arch/x86/kernel/cpu/mtrr/mtrr.h | 18 +-
arch/x86/kernel/crash.c | 18 +
arch/x86/kernel/kvmclock.c | 10 +-
arch/x86/kernel/reboot.c | 62 ++-
arch/x86/kvm/i8254.c | 19 +
arch/x86/kvm/i8259.c | 52 +-
arch/x86/kvm/irq.h | 6 +
arch/x86/kvm/kvm_svm.h | 2 +-
arch/x86/kvm/lapic.c | 58 +-
arch/x86/kvm/mmu.c | 444 +++++++--
arch/x86/kvm/paging_tmpl.h | 44 +-
arch/x86/kvm/svm.c | 48 +-
arch/x86/kvm/vmx.c | 350 +++++---
arch/x86/kvm/x86.c | 117 ++-
arch/x86/kvm/x86_emulate.c | 297 ++++---
fs/anon_inodes.c | 7 +-
include/linux/kvm.h | 18 +
include/linux/kvm_host.h | 12 +-
virt/kvm/ioapic.c | 8 +-
virt/kvm/ioapic.h | 2 +
virt/kvm/irq_comm.c | 19 +-
virt/kvm/kvm_main.c | 420 ++++++--
virt/kvm/kvm_trace.c | 1 +
68 files changed, 4760 insertions(+), 2606 deletions(-)
create mode 100644 arch/ia64/kvm/kvm_lib.c
create mode 100644 arch/powerpc/include/asm/disassemble.h
create mode 100644 arch/powerpc/include/asm/kvm_44x.h
create mode 100644 arch/powerpc/kvm/44x.c
create mode 100644 arch/powerpc/kvm/44x_emulate.c
rename arch/powerpc/kvm/{booke_guest.c => booke.c} (56%)
create mode 100644 arch/powerpc/kvm/booke.h
delete mode 100644 arch/powerpc/kvm/booke_host.c
create mode 100644 arch/powerpc/kvm/timing.c
create mode 100644 arch/powerpc/kvm/timing.h
rename arch/x86/{kvm => include/asm}/svm.h (100%)
create mode 100644 arch/x86/include/asm/virtext.h
rename arch/x86/{kvm => include/asm}/vmx.h (93%)
--
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/