All of lore.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: kvm-devel <kvm@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Marcelo Tosatti <mtosatti@redhat.com>
Subject: KVM updates for 2.6.32-rc1
Date: Sat, 12 Sep 2009 11:20:14 +0300	[thread overview]
Message-ID: <4AAB59BE.6070702@redhat.com> (raw)

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.


                 reply	other threads:[~2009-09-12  8:20 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4AAB59BE.6070702@redhat.com \
    --to=avi@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mtosatti@redhat.com \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.