[GIT PULL] KVM updates for 2.6.31

From: Avi Kivity
Date: Thu Jun 11 2009 - 04:08:32 EST

Linus, please pull the 2.6.31 KVM batch from

git://git.kernel.org/pub/scm/virt/kvm/kvm.git kvm-updates/2.6.31

Changes include MSI support, a rework of the interrupt code, improved smp
performance, and architecure code updates.

Amit Shah (1):
KVM: x86: Ignore reads to EVNTSEL MSRs

Andi Kleen (1):
KVM: Add VT-x machine check support

Andre Przywara (1):
KVM: SVM: Fix cross vendor migration issue in segment segment descriptor

Avi Kivity (18):
KVM: VMX: Don't use highmem pages for the msr and pio bitmaps
KVM: VMX: Don't intercept MSR_KERNEL_GS_BASE
KVM: VMX: Make module parameters readable
KVM: VMX: Rename kvm_handle_exit() to vmx_handle_exit()
KVM: VMX: Simplify module parameter names
KVM: VMX: Annotate module parameters as __read_mostly
KVM: VMX: Zero the vpid module parameter if vpid is not supported
KVM: VMX: Zero ept module parameter if ept is not present
KVM: VMX: Fold vm_need_ept() into callers
KVM: VMX: Make flexpriority module parameter reflect hardware capability
KVM: MMU: Use different shadows when EFER.NXE changes
KVM: Replace kvmclock open-coded get_cpu_var() with the real thing
KVM: Fix cpuid feature misreporting
KVM: Add AMD cpuid bit: cr8_legacy, abm, misaligned sse, sse4, 3dnow prefetch
x86: Add cpu features MOVBE and POPCNT
KVM: Update cpuid 1.ecx reporting
KVM: Disable large pages on misaligned memory slots
KVM: Prevent overflow in largepages calculation

Carsten Otte (4):
KVM: s390: Fix memory slot versus run - v3
KVM: s390: Unlink vcpu on destroy - v2
KVM: s390: Sanity check on validity intercept
KVM: s390: Verify memory in kvm run

Chris Wright (1):
KVM: Trivial format fix in setup_routing_entry()

Christian Borntraeger (3):
KVM: declare ioapic functions only on affected hardware
KVM: s390: use hrtimer for clock wakeup from idle - v2
KVM: s390: optimize float int lock: spin_lock_bh --> spin_lock

Dong, Eddie (2):
KVM: MMU: Emulate #PF error code of reserved bits violation
KVM: Use rsvd_bits_mask in load_pdptrs()

Eddie Dong (1):
KVM: MMU: Fix comment in page_fault()

Glauber Costa (3):
KVM: fix apic_debug instances
KVM: Replace ->drop_interrupt_shadow() by ->set_interrupt_shadow()
KVM: Deal with interrupt shadow state for emulated instructions

Gleb Natapov (51):
KVM: APIC: kvm_apic_set_irq deliver all kinds of interrupts
KVM: ioapic/msi interrupt delivery consolidation
KVM: consolidate ioapic/ipi interrupt delivery logic
KVM: change the way how lowest priority vcpu is calculated
KVM: APIC: get rid of deliver_bitmask
KVM: MMU: do not free active mmu pages in free_mmu_pages()
KVM: SVM: Remove duplicate code in svm_do_inject_vector()
KVM: reuse (pop|push)_irq from svm.c in vmx.c
KVM: Timer event should not unconditionally unhalt vcpu.
KVM: Fix interrupt unhalting a vcpu when it shouldn't
KVM: VMX: Fix handling of a fault during NMI unblocked due to IRET
KVM: VMX: Rewrite vmx_complete_interrupt()'s twisted maze of if() statements
KVM: VMX: Do not zero idt_vectoring_info in vmx_complete_interrupts().
KVM: Fix task switch back link handling.
KVM: Fix unneeded instruction skipping during task switching.
KVM: x86 emulator: fix call near emulation
KVM: x86 emulator: Add decoding of 16bit second immediate argument
KVM: x86 emulator: Add lcall decoding
KVM: x86 emulator: Complete ljmp decoding at decode stage
KVM: x86 emulator: Complete short/near jcc decoding in decode stage
KVM: x86 emulator: Complete decoding of call near in decode stage
KVM: x86 emulator: Add unsigned byte immediate decode
KVM: x86 emulator: Completely decode in/out at decoding stage
KVM: x86 emulator: Decode soft interrupt instructions
KVM: x86 emulator: Add new mode of instruction emulation: skip
KVM: SVM: Skip instruction on a task switch only when appropriate
KVM: Make kvm_cpu_(has|get)_interrupt() work for userspace irqchip too
KVM: VMX: Consolidate userspace and kernel interrupt injection for VMX
KVM: VMX: Cleanup vmx_intr_assist()
KVM: Use kvm_arch_interrupt_allowed() instead of checking interrupt_window_open directly
KVM: SVM: Coalesce userspace/kernel irqchip interrupt injection logic
KVM: Remove exception_injected() callback.
KVM: Remove inject_pending_vectors() callback
KVM: Remove kvm_push_irq()
KVM: sync_lapic_to_cr8() should always sync cr8 to V_TPR
KVM: Do not report TPR write to userspace if new value bigger or equal to a previous one.
KVM: Get rid of arch.interrupt_window_open & arch.nmi_window_open
KVM: SVM: Add NMI injection support
KVM: Fix userspace IRQ chip migration
KVM: Get rid of get_irq() callback
KVM: SVM: Don't reinject event that caused a task switch
KVM: Unprotect a page if #PF happens during NMI injection.
KVM: Do not allow interrupt injection from userspace if there is a pending event.
KVM: Remove irq_pending bitmap
KVM: skip_emulated_instruction() decode instruction if size is not known
KVM: Do not re-execute INTn instruction.
KVM: Always request IRQ/NMI window if an interrupt is pending
KVM: inject NMI after IRET from a previous NMI, not before.
KVM: Do not migrate pending software interrupts.
KVM: Disable CR8 intercept if tpr patching is active
KVM: Move "exit due to NMI" handling into vmx_complete_interrupts()

Hannes Eder (1):
KVM: make 'lapic_timer_ops' and 'kpit_ops' static

Jan Blunck (1):
KVM: Wake up waitqueue before calling get_cpu()

Jan Kiszka (2):
KVM: MMU: Fix auditing code
KVM: Drop request_nmi from stats

Jes Sorensen (9):
KVM: ia64: Map in SN2 RTC registers to the VMM module
KVM: ia64: Create inline function kvm_get_itc() to centralize ITC reading.
KVM: ia64: SN2 adjust emulated ITC frequency to match RTC frequency
KVM: ia64: Drop in SN2 replacement of fast path ITC emulation fault handler
KVM: ia64: Don't hold slots_lock in guest mode
KVM: ia64: remove empty function vti_vcpu_load()
KVM: ia64: restore irq state before calling kvm_vcpu_init
KVM: ia64: preserve int status through call to kvm_insert_vmm_mapping
KVM: ia64: ia64 vcpu_reset() do not call kmalloc() with irqs disabled

Joerg Roedel (1):
KVM: MMU: remove call to kvm_mmu_pte_write from walk_addr

Marcelo Tosatti (12):
KVM: x86: paravirt skip pit-through-ioapic boot check
KVM: PIT: remove unused scheduled variable
KVM: PIT: remove usage of count_load_time for channel 0
KVM: unify part of generic timer handling
KVM: PIT: fix count read and mode 0 handling
KVM: MMU: remove global page optimization logic
KVM: x86: check for cr3 validity in ioctl_set_sregs
KVM: use smp_send_reschedule in kvm_vcpu_kick
KVM: protect assigned dev workqueue, int handler and irq acker
KVM: MMU: protect kvm_mmu_change_mmu_pages with mmu_lock
KVM: take mmu_lock when updating a deleted slot
KVM: x86: check for cr3 validity in mmu_alloc_roots

Matt T. Yourst (1):
KVM: x86: silence preempt warning on kvm_write_guest_time

Nitin A Kamble (1):
KVM: VMX: Rename rmode.active to rmode.vm86_active

Robert P. J. Day (1):
KVM: Expand on "help" info to specify kvm intel and amd module names

Sheng Yang (17):
KVM: Split IOAPIC structure
KVM: Unify the delivery of IOAPIC and MSI interrupts
KVM: Change API of kvm_ioapic_get_delivery_bitmask
KVM: Update intr delivery func to accept unsigned long* bitmap
KVM: bit ops for deliver_bitmap
KVM: Ioctls for init MSI-X entry
KVM: Add MSI-X interrupt injection logic
KVM: Enable MSI-X for KVM assigned device
KVM: Merge kvm_ioapic_get_delivery_bitmask into kvm_get_intr_delivery_bitmask
KVM: Device assignment framework rework
KVM: VMX: Correct wrong vmcs field sizes
KVM: VMX: Clean up Flex Priority related
KVM: VMX: Fix feature testing
KVM: MMU: Discard reserved bits checking on PDE bit 7-8
KVM: Replace get_mt_mask_shift with get_mt_mask
KVM: Enable snooping control for supported hardware
KVM: VMX: Disable VMX when system shutdown

Wei Yongjun (1):
KVM: remove pointless conditional before kfree() in lapic initialization

Xiantao Zhang (1):
KVM: ia64: Flush all TLBs once guest's memory mapping changes.

Yang Zhang (2):
KVM: ia64: fix compilation error in kvm_get_lowest_prio_vcpu
KVM: ia64: enable external interrupt in vmm

Zhang, Xiantao (1):
KVM: ia64: make kvm depend on CONFIG_MODULES.

nathan binkert (1):
KVM: Make kvm header C++ friendly

arch/ia64/include/asm/kvm_host.h | 6 +-
arch/ia64/include/asm/pgtable.h | 2 +
arch/ia64/kernel/irq_ia64.c | 3 +
arch/ia64/kvm/Kconfig | 2 +-
arch/ia64/kvm/kvm-ia64.c | 263 ++++++++----
arch/ia64/kvm/kvm_fw.c | 28 ++-
arch/ia64/kvm/lapic.h | 6 +-
arch/ia64/kvm/optvfault.S | 30 ++
arch/ia64/kvm/process.c | 5 +
arch/ia64/kvm/vcpu.c | 20 +-
arch/ia64/kvm/vmm.c | 12 +-
arch/ia64/kvm/vmm_ivt.S | 18 +-
arch/ia64/kvm/vtlb.c | 3 +-
arch/powerpc/kvm/powerpc.c | 6 +
arch/s390/include/asm/kvm_host.h | 5 +-
arch/s390/kvm/intercept.c | 28 +-
arch/s390/kvm/interrupt.c | 59 ++-
arch/s390/kvm/kvm-s390.c | 63 +++-
arch/s390/kvm/kvm-s390.h | 4 +-
arch/s390/kvm/priv.c | 4 +-
arch/s390/kvm/sigp.c | 16 +-
arch/x86/include/asm/cpufeature.h | 2 +
arch/x86/include/asm/kvm.h | 1 +
arch/x86/include/asm/kvm_host.h | 45 ++-
arch/x86/include/asm/kvm_x86_emulate.h | 6 +
arch/x86/include/asm/svm.h | 1 +
arch/x86/include/asm/vmx.h | 1 +
arch/x86/kernel/cpu/mcheck/mce_64.c | 1 +
arch/x86/kernel/kvm.c | 4 +
arch/x86/kernel/smp.c | 3 +
arch/x86/kvm/Kconfig | 6 +
arch/x86/kvm/Makefile | 2 +-
arch/x86/kvm/i8254.c | 109 +++---
arch/x86/kvm/i8254.h | 12 +-
arch/x86/kvm/irq.c | 7 +
arch/x86/kvm/kvm_timer.h | 18 +
arch/x86/kvm/lapic.c | 251 ++++--------
arch/x86/kvm/lapic.h | 12 +-
arch/x86/kvm/mmu.c | 194 +++++----
arch/x86/kvm/mmu.h | 5 +
arch/x86/kvm/paging_tmpl.h | 16 +-
arch/x86/kvm/svm.c | 415 +++++++++++--------
arch/x86/kvm/timer.c | 46 ++
arch/x86/kvm/vmx.c | 721 +++++++++++++++++---------------
arch/x86/kvm/x86.c | 409 ++++++++++++-------
arch/x86/kvm/x86.h | 14 +-
arch/x86/kvm/x86_emulate.c | 141 +++----
include/linux/kvm.h | 46 ++-
include/linux/kvm_host.h | 21 +-
include/linux/kvm_types.h | 27 ++
virt/kvm/ioapic.c | 153 +------
virt/kvm/ioapic.h | 27 +-
virt/kvm/iommu.c | 27 +-
virt/kvm/irq_comm.c | 111 +++--
virt/kvm/kvm_main.c | 678 +++++++++++++++++++++---------
55 files changed, 2471 insertions(+), 1644 deletions(-)
create mode 100644 arch/x86/kvm/kvm_timer.h
create mode 100644 arch/x86/kvm/timer.c
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/