KVM updates for 2.6.32-rc1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Linus, please pull from

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

to receive the KVM updates for this cycle.  Changes include

- support for injecting MCEs into guests
- irqfd/ioeventfd, an eventfd-based mechanism to connect user- and kernel- based components to guests
- "unrestricted guests" on Intel, which improves real-mode support
- nested svm improvements
- event traces supplant the old KVM-private trace implementation
- syscall/sysenter emulation for cross-vendor migration
- 1GB pages on AMD
- x2apic, which improves SMP performance

as well as the usual fixes and performance and scaling improvements.

Note that Marcelo is joining me as co-maintainer, so you may get KVM updates from him in the future.

Shortlog/diffstat:

Akinobu Mita (2):
      KVM: x86: use get_desc_base() and get_desc_limit()
      KVM: x86: use kvm_get_gdt() and kvm_read_ldt()

Alexander Graf (4):
      x86: Add definition for IGNNE MSR
      KVM: Implement MSRs used by Hyper-V
      KVM: SVM: Implement INVLPGA
      KVM: SVM: Improve nested interrupt injection

Amit Shah (2):
      KVM: ignore reads to perfctr msrs
      Documentation: Update KVM list email address

Andre Przywara (15):
      KVM: SVM: use explicit 64bit storage for sysenter values
KVM: Move performance counter MSR access interception to generic x86 path
      KVM: Allow emulation of syscalls instructions on #UD
      KVM: x86 emulator: Add missing EFLAGS bit definitions
      KVM: x86 emulator: Prepare for emulation of syscall instructions
      KVM: x86 emulator: add syscall emulation
      KVM: x86 emulator: Add sysenter emulation
      KVM: x86 emulator: Add sysexit emulation
      KVM: ignore AMDs HWCR register access to set the FFDIS bit
      KVM: ignore reads from AMDs C1E enabled MSR
      KVM: introduce module parameter for ignoring unknown MSRs accesses
      KVM: Ignore PCI ECS I/O enablement
      KVM: handle AMD microcode MSR
      KVM: fix MMIO_CONF_BASE MSR access
      KVM: add module parameters documentation

Anthony Liguori (1):
      KVM: When switching to a vm8086 task, load segments as 16-bit

Avi Kivity (37):
      KVM: x86 emulator: Implement zero-extended immediate decoding
      KVM: x86 emulator: fix jmp far decoding (opcode 0xea)
      KVM: Move common KVM Kconfig items to new file virt/kvm/Kconfig
      KVM: SVM: Fold kvm_svm.h info svm.c
      KVM: VMX: Avoid duplicate ept tlb flush when setting cr3
      KVM: VMX: Simplify pdptr and cr3 management
      KVM: Cache pdptrs
      KVM: VMX: Fix reporting of unhandled EPT violations
      KVM: Calculate available entries in coalesced mmio ring
      KVM: Reorder ioctls in kvm.h
      KVM: VMX: Move rmode structure to vmx-specific code
      KVM: MMU: Fix is_dirty_pte()
KVM: MMU: Adjust pte accessors to explicitly indicate guest or shadow pte
      KVM: MMU: s/shadow_pte/spte/
      KVM: Return to userspace on emulation failure
      KVM: VMX: Only reload guest cr2 if different from host cr2
      KVM: SVM: Don't save/restore host cr2
      KVM: Trace irq level and source id
      KVM: Trace mmio
      KVM: Trace apic registers using their symbolic names
      KVM: MMU: Trace guest pagetable walker
      KVM: Document basic API
      KVM: Trace shadow page lifecycle
      KVM: VMX: Optimize vmx_get_cpl()
      x86: Export kmap_atomic_to_page()
      KVM: SVM: Drop tlb flush workaround in npt
      KVM: Move #endif KVM_CAP_IRQ_ROUTING to correct place
      KVM: VMX: Adjust rflags if in real mode emulation
      KVM: Rename x86_emulate.c to emulate.c
      KVM: Add __KERNEL__ guards to exported headers
      KVM: Add missing #include
      KVM: Protect update_cr8_intercept() when running without an apic
      KVM: Document KVM_CAP_IRQCHIP
      KVM: Optimize kvm_mmu_unprotect_page_virt() for tdp
      KVM: Use thread debug register storage instead of kvm specific data
      KVM: VMX: Conditionally reload debug register 6
      KVM: VMX: Check cpl before emulating debug register access

Bartlomiej Zolnierkiewicz (1):
KVM: remove superfluous NULL pointer check in kvm_inject_pit_timer_irqs()

Beth Kon (1):
      KVM: PIT support for HPET legacy mode

Christian Borntraeger (1):
      KVM: s390: Fix memslot initialization for userspace_addr != 0

Christian Ehrhardt (4):
      KVM: s390: infrastructure to kick vcpus out of guest state
      KVM: s390: fix signal handling
      KVM: s390: streamline memslot handling
      KVM: remove redundant declarations

Christoph Hellwig (1):
      KVM: cleanup arch/x86/kvm/Makefile

Glauber Costa (1):
      KVM guest: fix bogus wallclock physical address calculation

Gleb Natapov (28):
KVM: VMX: Properly handle software interrupt re-injection in real mode KVM: Drop interrupt shadow when single stepping should be done only on VMX
      KVM: Introduce kvm_vcpu_is_bsp() function.
      KVM: Use pointer to vcpu instead of vcpu_id in timer code.
      KVM: Break dependency between vcpu index in vcpus array and vcpu_id.
      KVM: Use macro to iterate over vcpus.
      KVM: Replace pending exception by PF if it happens serially
      KVM: Optimize searching for highest IRR
      KVM: Add Directed EOI support to APIC emulation
      KVM: x2apic interface to lapic
      KVM: Use temporary variable to shorten lines.
      KVM: Add trace points in irqchip code
      KVM: No need to kick cpu if not in a guest mode
      KVM: Always report x2apic as supported feature
      KVM: Move exception handling to the same place as other events
      KVM: Move kvm_cpu_get_interrupt() declaration to x86 code
      KVM: Reduce runnability interface with arch support code
      KVM: silence lapic kernel messages that can be triggered by a guest
      KVM: s390: remove unused structs
      KVM: PIT: Unregister ack notifier callback when freeing
      KVM: Call kvm_vcpu_kick() inside pic spinlock
      KVM: Call ack notifiers from PIC when guest OS acks an IRQ.
KVM: Replace pic_lock()/pic_unlock() with direct call to spinlock functions
      KVM: Update cr8 intercept when APIC TPR is changed by userspace
      KVM: VMX: Fix cr8 exiting control clobbering by EPT
      KVM: Fix coalesced interrupt reporting in IOAPIC
      KVM: VMX: call vmx_load_host_state() only if msr is cached
      KVM: fix misreporting of coalesced interrupts by kvm tracer

Gregory Haskins (6):
      KVM: irqfd
      KVM: Clean up coalesced_mmio destruction
      KVM: cleanup io_device code
      KVM: do not register i8254 PIO regions until we are initialized
      KVM: make io_bus interface more robust
      KVM: add ioeventfd support

Heiko Carstens (1):
      KVM: fix compile warnings on s390

Huang Ying (1):
      KVM: Add MCE support

Izik Eidus (1):
      KVM: MMU: make __kvm_mmu_free_some_pages handle empty list

Jan Kiszka (8):
      KVM: Allow PIT emulation without speaker port
      KVM: Cleanup LAPIC interface
      KVM: Fix racy event propagation in timer
      KVM: Drop useless atomic test from timer function
      Revert "KVM: x86: check for cr3 validity in ioctl_set_sregs"
      KVM: Drop obsolete cpu_get/put in make_all_cpus_request
      KVM: VMX: Avoid to return ENOTSUPP to userland
      KVM: x86: Disallow hypercalls for guest callers in rings > 0

Jaswinder Singh Rajput (2):
KVM: Replace MSR_IA32_TIME_STAMP_COUNTER with MSR_IA32_TSC of msr-index.h
      KVM: Use MSR names in place of address

Jes Sorensen (1):
      KVM: ia64: Correct itc_offset calculations

Jiri Slaby (1):
      KVM: fix lock imbalance

Joerg Roedel (31):
      hugetlbfs: export vma_kernel_pagsize to modules
      KVM: Prepare memslot data structures for multiple hugepage sizes
      KVM: MMU: Fix MMU_DEBUG compile breakage
      KVM: MMU: make rmap code aware of mapping levels
      KVM: MMU: rename is_largepage_backed to mapping_level
      KVM: MMU: make direct mapping paths aware of mapping levels
      KVM: MMU: make page walker aware of mapping levels
      KVM: MMU: shadow support for 1gb pages
      KVM: MMU: enable gbpages by increasing nr of pagesizes
      KVM: report 1GB page support to userspace
      KVM: SVM: add helper functions for global interrupt flag
      KVM: SVM: optimize nested #vmexit
      KVM: SVM: optimize nested vmrun
KVM: SVM: copy only necessary parts of the control area on vmrun/vmexit
      KVM: SVM: complete interrupts after handling nested exits
      KVM: SVM: move nested svm state into seperate struct
      KVM: SVM: cache nested intercepts
      KVM: SVM: consolidate nested_svm_exit_handled
      KVM: SVM: do nested vmexit in nested_svm_exit_handled
      KVM: SVM: simplify nested_svm_check_exception
      KVM: SVM: get rid of nested_svm_vmexit_real
      KVM: SVM: clean up nested_svm_exit_handled_msr
      KVM: SVM: clean up nestec vmload/vmsave paths
      KVM: SVM: clean up nested vmrun path
      KVM: SVM: remove nested_svm_do and helper functions
      KVM: SVM: handle errors in vmrun emulation path appropriatly
      KVM: SVM: move special nested exit handling to separate function
      KVM: SVM: remove unnecessary is_nested check from svm_cpu_run
      KVM: SVM: move nested_svm_intr main logic out of if-clause
      KVM: SVM: check for nested VINTR flag in svm_interrupt_allowed
      KVM: SVM: enable nested svm by default

Julia Lawall (1):
      KVM: correct error-handling code

Liu Yu (3):
      KVM: ppc: e500: Move to Book-3e MMU definitions
      KVM: ppc: e500: Directly pass pvr to guest
      KVM: ppc: e500: Add MMUCFG and PVR emulation

Marcelo Tosatti (26):
      KVM: Grab pic lock in kvm_pic_clear_isr_ack
      KVM: move coalesced_mmio locking to its own device
      KVM: introduce irq_lock, use it to protect ioapic
      KVM: switch irq injection/acking data structures to irq_lock
      KVM: MMU: introduce is_last_spte helper
      KVM: MMU audit: update count_writable_mappings / count_rmaps
      KVM: MMU audit: update audit_write_protection
      KVM: MMU audit: nontrapping ptes in nonleaf level
      KVM: MMU audit: audit_mappings tweaks
      KVM: MMU audit: largepage handling
      KVM: VMX: more MSR_IA32_VMX_EPT_VPID_CAP capability bits
      KVM: MMU: make for_each_shadow_entry aware of largepages
      KVM: MMU: add kvm_mmu_get_spte_hierarchy helper
      KVM: VMX: EPT misconfiguration handler
      KVM: VMX: conditionally disable 2M pages
      KVM: convert custom marker based tracing to event traces
      KVM: x86: missing locking in PIT/IRQCHIP/SET_BSP_CPU ioctl paths
      KVM: powerpc: convert marker probes to event trace
      KVM: remove old KVMTRACE support code
      KVM: use vcpu_id instead of bsp_vcpu pointer in kvm_vcpu_is_bsp
      KVM: MMU: fix missing locking in alloc_mmu_pages
      KVM: limit lapic periodic timer frequency
      KVM: MMU: fix bogus alloc_mmu_pages assignment
      KVM guest: do not batch pte updates from interrupt context
      KVM: x86: drop duplicate kvm_flush_remote_tlb calls
      MAINTAINERS: update KVM entry

Mark McLoughlin (1):
      KVM: fix cpuid E2BIG handling for extended request types

Michael S. Tsirkin (8):
      KVM: document locking for kvm_io_device_ops
      KVM: switch coalesced mmio changes to slots_lock
      KVM: switch pit creation to slots_lock
      KVM: convert bus to slots_lock
      KVM: remove in_range from io devices
      KVM: document lock nesting rule
      KVM: ignore msi request if !level
      KVM: export kvm_para.h

Mikhail Ershov (2):
      KVM: Align cr8 threshold when userspace changes cr8
KVM: Use kvm_{read,write}_guest_virt() to read and write segment descriptors

Mohammed Gamal (1):
      KVM: x86 emulator: Add adc and sbb missing decoder flags

Nitin A Kamble (1):
      KVM: VMX: Support Unrestricted Guest feature

Roel Kluin (1):
      KVM: fix EFER read buffer overflow

Sheng Yang (6):
      KVM: Downsize max support MSI-X entry to 256
      KVM: No disable_irq for MSI/MSI-X interrupt on device assignment
      KVM: Fix apic_mmio_write return for unaligned write
      KVM: Discard unnecessary kvm_mmu_flush_tlb() in kvm_mmu_load()
      KVM: VMX: Introduce KVM_SET_IDENTITY_MAP_ADDR ioctl
      KVM: VMX: Fix EPT with WP bit change during paging

Stephen Rothwell (1):
      KVM: powerpc: fix some init/exit annotations

Xiao Guangrong (1):
      KVM: fix kvm_init() error handling

 Documentation/ioctl/ioctl-number.txt               |    2 +-
 Documentation/kernel-parameters.txt                |   39 +
Documentation/kvm/api.txt | 759 +++++++++++++++++
 MAINTAINERS                                        |    1 +
 arch/ia64/include/asm/kvm_host.h                   |    4 +-
 arch/ia64/include/asm/kvm_para.h                   |    4 +
 arch/ia64/kvm/Kconfig                              |   11 +-
 arch/ia64/kvm/kvm-ia64.c                           |   85 +--
 arch/ia64/kvm/vcpu.c                               |    4 +-
 arch/powerpc/include/asm/kvm_host.h                |    4 +-
 arch/powerpc/kvm/44x.c                             |    4 +-
 arch/powerpc/kvm/44x_tlb.c                         |   11 +-
 arch/powerpc/kvm/Kconfig                           |   14 +-
 arch/powerpc/kvm/Makefile                          |    4 +-
 arch/powerpc/kvm/booke.c                           |    2 +-
 arch/powerpc/kvm/e500.c                            |    7 +-
 arch/powerpc/kvm/e500_emulate.c                    |    3 +
 arch/powerpc/kvm/e500_tlb.c                        |   26 +-
 arch/powerpc/kvm/e500_tlb.h                        |    6 +-
 arch/powerpc/kvm/emulate.c                         |    7 +-
 arch/powerpc/kvm/powerpc.c                         |   32 +-
 arch/powerpc/kvm/trace.h                           |  104 +++
 arch/s390/include/asm/kvm.h                        |    9 -
 arch/s390/include/asm/kvm_host.h                   |   15 +-
 arch/s390/include/asm/kvm_para.h                   |    4 +
 arch/s390/kvm/Kconfig                              |    9 +-
 arch/s390/kvm/gaccess.h                            |   23 +-
 arch/s390/kvm/intercept.c                          |   18 +-
 arch/s390/kvm/interrupt.c                          |    8 +-
 arch/s390/kvm/kvm-s390.c                           |   78 +-
 arch/s390/kvm/kvm-s390.h                           |   32 +-
 arch/s390/kvm/sigp.c                               |   60 +-
 arch/x86/include/asm/apicdef.h                     |    2 +
 arch/x86/include/asm/kvm.h                         |   10 +
 .../asm/{kvm_x86_emulate.h => kvm_emulate.h}       |    0
 arch/x86/include/asm/kvm_host.h                    |   60 +-
 arch/x86/include/asm/kvm_para.h                    |    2 +
 arch/x86/include/asm/msr-index.h                   |    1 +
 arch/x86/include/asm/vmx.h                         |    8 +
 arch/x86/kernel/kvm.c                              |    7 +-
 arch/x86/kernel/kvmclock.c                         |    4 +-
 arch/x86/kvm/Kconfig                               |   21 +-
 arch/x86/kvm/Makefile                              |   35 +-
 arch/x86/kvm/{x86_emulate.c => emulate.c}          |  265 ++++++-
 arch/x86/kvm/i8254.c                               |  160 +++--
 arch/x86/kvm/i8254.h                               |    5 +-
 arch/x86/kvm/i8259.c                               |  116 ++--
 arch/x86/kvm/irq.h                                 |    1 -
 arch/x86/kvm/kvm_cache_regs.h                      |    9 +
 arch/x86/kvm/kvm_svm.h                             |   51 --
 arch/x86/kvm/kvm_timer.h                           |    2 +-
 arch/x86/kvm/lapic.c                               |  334 ++++++--
 arch/x86/kvm/lapic.h                               |    4 +
 arch/x86/kvm/mmu.c                                 |  587 +++++++++-----
 arch/x86/kvm/mmu.h                                 |    4 +-
 arch/x86/kvm/mmutrace.h                            |  220 +++++
 arch/x86/kvm/paging_tmpl.h                         |  141 ++--
arch/x86/kvm/svm.c | 889 ++++++++++++--------
 arch/x86/kvm/timer.c                               |   16 +-
 arch/x86/kvm/trace.h                               |  355 ++++++++
 arch/x86/kvm/vmx.c                                 |  497 ++++++++---
arch/x86/kvm/x86.c | 815 +++++++++++++------
 arch/x86/kvm/x86.h                                 |    4 +
 arch/x86/mm/highmem_32.c                           |    1 +
 include/asm-generic/Kbuild.asm                     |    5 +
 include/linux/Kbuild                               |    4 +
 include/linux/kvm.h                                |  127 ++-
 include/linux/kvm_host.h                           |  114 ++-
 include/linux/kvm_para.h                           |    1 +
 include/trace/events/kvm.h                         |  151 ++++
 mm/hugetlb.c                                       |    1 +
 virt/kvm/Kconfig                                   |   14 +
 virt/kvm/coalesced_mmio.c                          |   74 +-
 virt/kvm/coalesced_mmio.h                          |    1 +
 virt/kvm/eventfd.c                                 |  578 +++++++++++++
 virt/kvm/ioapic.c                                  |   78 ++-
 virt/kvm/iodev.h                                   |   55 +-
 virt/kvm/irq_comm.c                                |   51 +-
 virt/kvm/kvm_main.c                                |  298 +++++--
 virt/kvm/kvm_trace.c                               |  285 -------
 80 files changed, 5692 insertions(+), 2160 deletions(-)
 create mode 100644 Documentation/kvm/api.txt
 create mode 100644 arch/powerpc/kvm/trace.h
 rename arch/x86/include/asm/{kvm_x86_emulate.h => kvm_emulate.h} (100%)
 rename arch/x86/kvm/{x86_emulate.c => emulate.c} (90%)
 delete mode 100644 arch/x86/kvm/kvm_svm.h
 create mode 100644 arch/x86/kvm/mmutrace.h
 create mode 100644 arch/x86/kvm/trace.h
 create mode 100644 include/trace/events/kvm.h
 create mode 100644 virt/kvm/Kconfig
 create mode 100644 virt/kvm/eventfd.c
 delete mode 100644 virt/kvm/kvm_trace.c

--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux