Skip to contentSkip to conversation

KVM updates for the 2.6.36 merge window

GIT PULL Avi Kivity 1 participant 1 message Aug 3, 2010 KVM

lore
Share & tools
lore

Avi Kivity

author
#0 lore raw

Linus, please pull from

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

to receive the KVM updates for the 2.6.36 cycle. No major features: mostly improved mmu and emulator correctness, some performance improvements, and support for guest XSAVE and AVX.

Alex Williamson (1):
KVM: remove CAP_SYS_RAWIO requirement from kvm_vm_ioctl_assign_irq

Alexander Graf (5):
KVM: PPC: Remove obsolete kvmppc_mmu_find_pte
KVM: PPC: Use kernel hash function
KVM: PPC: Make BAT only guest segments work
KVM: PPC: Add generic hpte management functions
KVM: PPC: Make use of hash based Shadow MMU

Andi Kleen (2):
KVM: Fix KVM_SET_SIGNAL_MASK with arg == NULL
KVM: Fix unused but set warnings

Andrea Arcangeli (1):
KVM: MMU: fix mmu notifier invalidate handler for huge spte

Andreas Schwab (1):
KVM: PPC: elide struct thread_struct instances from stack

Asias He (1):
KVM: PPC: fix uninitialized variable warning in
kvm_ppc_core_deliver_interrupts

Avi Kivity (50):
KVM: VMX: Simplify vmx_get_nmi_mask()
KVM: kvm_pdptr_read() may sleep
KVM: VMX: Avoid writing HOST_CR0 every entry
KVM: Get rid of KVM_REQ_KICK
KVM: Document KVM_SET_IDENTITY_MAP ioctl
KVM: Document KVM_SET_BOOT_CPU_ID
KVM: MMU: Fix free memory accounting race in mmu_alloc_roots()
KVM: move vcpu locking to dispatcher for generic vcpu ioctls
KVM: x86: Lock arch specific vcpu ioctls centrally
KVM: s390: Centrally lock arch specific vcpu ioctls
KVM: PPC: Centralize locking of arch specific vcpu ioctls
KVM: Consolidate arch specific vcpu ioctl locking
KVM: Update Red Hat copyrights
KVM: MMU: Allow spte.w=1 for gpte.w=0 and cr0.wp=0 only in shadow
mode
KVM: MMU: Document cr0.wp emulation
KVM: MMU: Document large pages
KVM: VMX: Fix incorrect rcu deref in rmode_tss_base()
KVM: Fix mov cr0 #GP at wrong instruction
KVM: Fix mov cr4 #GP at wrong instruction
KVM: Fix mov cr3 #GP at wrong instruction
KVM: Fix xsave and xcr save/restore memory leak
KVM: Consolidate load/save temporary buffer allocation and freeing
KVM: Remove memory alias support
KVM: Remove kernel-allocated memory regions
KVM: i8259: reduce excessive abstraction for pic_irq_request()
KVM: i8259: simplify pic_irq_request() calling sequence
KVM: Add mini-API for vcpu->requests
KVM: Reduce atomic operations on vcpu->requests
KVM: Keep slot ID in memory slot structure
KVM: Prevent internal slots from being COWed
KVM: Simplify vcpu_enter_guest() mmu reload logic slightly
KVM: Document KVM specific review items
KVM: MMU: Introduce drop_spte()
KVM: MMU: Move accessed/dirty bit checks from rmap_remove() to
drop_spte()
KVM: MMU: Atomically check for accessed bit when dropping an spte
KVM: MMU: Don't drop accessed bit while updating an spte
KVM: MMU: Only indicate a fetch fault in page fault error code if
nx is enabled
KVM: MMU: Keep going on permission error
KVM: Expose MCE control MSRs to userspace
KVM: Document MCE banks non-exposure via KVM_GET_MSR_INDEX_LIST
KVM: MMU: Add link_shadow_page() helper
KVM: MMU: Use __set_spte to link shadow pages
KVM: MMU: Add drop_large_spte() helper
KVM: MMU: Add validate_direct_spte() helper
KVM: MMU: Add gpte_valid() helper
KVM: MMU: Simplify spte fetch() function
KVM: MMU: Validate all gptes during fetch, not just those used
for new pages
KVM: MMU: Eliminate redundant temporaries in FNAME(fetch)
KVM: Document KVM_GET_SUPPORTED_CPUID2 ioctl
KVM: VMX: Fix host GDT.LIMIT corruption

Chris Lalancette (4):
KVM: x86: Introduce a workqueue to deliver PIT timer interrupts
KVM: x86: Allow any LAPIC to accept PIC interrupts
KVM: x86: In DM_LOWEST, only deliver interrupts to vcpus with
enabled LAPIC's
KVM: Search the LAPIC's for one that will accept a PIC interrupt

Christian Borntraeger (2):
KVM: s390: Fix build failure due to centralized vcpu locking patches
KVM: s390: Don't exit SIE on SIGP sense running

Denis Kirjanov (1):
KVM: PPC: fix build warning in kvm_arch_vcpu_ioctl_run

Dexuan Cui (1):
KVM: VMX: Enable XSAVE/XRSTOR for guest

Dongxiao Xu (4):
KVM: VMX: Define new functions to wrapper direct call of asm code
KVM: VMX: Some minor changes to code structure
KVM: VMX: VMCLEAR/VMPTRLD usage changes
KVM: VMX: VMXON/VMXOFF usage changes

Glauber Costa (1):
KVM: Add Documentation/kvm/msr.txt

Gleb Natapov (32):
KVM: x86 emulator: introduce read cache
KVM: x86 emulator: fix Move r/m16 to segment register decoding
KVM: x86 emulator: cleanup xchg emulation
KVM: x86 emulator: cleanup nop emulation
KVM: x86 emulator: handle "far address" source operand
KVM: x86 emulator: add (set|get)_dr callbacks to x86_emulate_ops
KVM: x86 emulator: add (set|get)_msr callbacks to x86_emulate_ops
KVM: x86 emulator: add get_cached_segment_base() callback to
x86_emulate_ops
KVM: x86 emulator: cleanup some direct calls into kvm to use
existing callbacks
KVM: x86 emulator: make set_cr() callback return error if it fails
KVM: x86 emulator: make (get|set)_dr() callback return error if
it fails
KVM: x86 emulator: fix X86EMUL_RETRY_INSTR and
X86EMUL_CMPXCHG_FAILED values
KVM: fill in run->mmio details in (read|write)_emulated function
KVM: x86 emulator: x86_emulate_insn() return -1 only in case of
emulation failure
KVM: remove export of emulator_write_emulated()
KVM: do not inject #PF in (read|write)_emulated() callbacks
KVM: handle emulation failure case first
KVM: x86 emulator: advance RIP outside x86 emulator code
KVM: x86 emulator: set RFLAGS outside x86 emulator code
KVM: x86 emulator: use shadowed register in emulate_sysexit()
KVM: x86 emulator: handle shadowed registers outside emulator
KVM: x86 emulator: move interruptibility state tracking out of
emulator
KVM: x86 emulator: do not inject exception directly into vcpu
KVM: inject #UD if instruction emulation fails and exit to userspace
KVM: SVM: correctly trace irq injection
KVM: define hwpoison variables static
KVM: Return EFAULT from kvm ioctl when guest accesses bad area
KVM: Reenter guest after emulation failure if due to access to
non-mmio address
KVM: Convert mask notifiers to use irqchip/pin instead of gsi
KVM: x86: emulator: inc/dec can have lock prefix
KVM: x86: never re-execute instruction with enabled tdp
KVM: x86: Call mask notifiers from pic

Gui Jianfeng (9):
KVM: MMU: mark page table dirty when a pte is actually modified
KVM: MMU: Fix debug output error in walk_addr()
KVM: MMU: make kvm_mmu_zap_page() return the number of pages it
actually freed
KVM: update mmu documetation for role.nxe
KVM: MMU: don't check PT_WRITABLE_MASK directly
KVM: MMU: Don't calculate quadrant if tdp_enabled
KVM: VMX: Make sure single type invvpid is supported before
issuing invvpid instruction
KVM: VMX: Add all-context INVVPID type support
KVM: VMX: rename vpid_sync_vcpu_all() to vpid_sync_vcpu_single()

Huang Ying (2):
KVM: Avoid killing userspace through guest SRAO MCE on unmapped pages
KVM: Fix a race condition for usage of is_hwpoison_address()

Jan Kiszka (1):
KVM: x86: Propagate fpu_alloc errors

Jason Wang (1):
KVM: Fix typos in Documentation/kvm/mmu.txt

Jiri Slaby (1):
KVM: fix lock imbalance in kvm_create_pit()

Joerg Roedel (4):
KVM: SVM: Dump vmcb contents on failed vmrun
KVM: SVM: Allow EFER.LMSLE to be set with nested svm
KVM: Remove unnecessary divide operations
KVM: Use u64 for frame data types

Lai Jiangshan (5):
KVM: MMU: Don't allocate gfns page for direct mmu pages
KVM: MMU: Calculate correct base gfn for direct non-DIR level
KVM: MMU: calculate correct gfn for small host pages backing
large guest pages
KVM: cleanup "*new.rmap" type
KVM: x86: use linux/uaccess.h instead of asm/uaccess.h

Marcelo Tosatti (1):
KVM: pass correct parameter to kvm_mmu_free_some_pages

Mohammed Gamal (5):

      KVM: x86 emulator: Add test acc, imm instruction (opcodes 0xA8 - 

0xA9)
KVM: x86 emulator: Add missing decoder flags for sub instruction
KVM: x86 emulator: Add missing decoder flags for xor instructions
KVM: VMX: Add constant for invalid guest state exit reason
KVM: VMX: Properly return error to userspace on vmentry failure

Sheng Yang (10):
KVM: x86: Clean up duplicate assignment
KVM: VMX: Only reset MMU when necessary
x86: Export FPU API for KVM use
KVM: x86: Use unlazy_fpu() for host FPU
KVM: x86: Use FPU API
KVM: VMX: Enforce EPT pagetable level checking
KVM: x86: XSAVE/XRSTOR live migration support
KVM: x86: Enable AVX for guest
KVM: VMX: Execute WBINVD to keep data consistency with assigned
devices
KVM: Fix IOMMU memslot reference warning

Takuya Yoshikawa (3):
KVM: x86: avoid unnecessary bitmap allocation when memslot is clean
KVM: ia64: fix dirty_log_lock spin_lock section not to include
get_dirty_log()

      KVM: ia64: cleanup kvm_ia64_sync_dirty_log()

Wei Yongjun (9):
KVM: x86 emulator: fix pusha instruction emulation
KVM: x86 emulator: fix group3 instruction decoding
KVM: x86 emulator: fix 'mov sreg,rm16' instruction decoding
KVM: x86 emulator: fix the comment of out instruction
KVM: x86 emulator: fix 'and AL,imm8' instruction decoding
KVM: x86 emulator: fix 'mov rm,sreg' instruction decoding
KVM: x86 emulator: fix cli/sti instruction emulation
KVM: x86 emulator: re-implementing 'mov AL,moffs' instruction
decoding
KVM: x86 emulator: fix xchg instruction emulation

Xiao Guangrong (39):
KVM: MMU: use proper cache object freeing function
KVM: MMU: remove rmap before clear spte
KVM: MMU: unalias gfn before sp->gfns[] comparison in sync_page
KVM: x86: cleanup unused local variable
KVM: MMU: split kvm_sync_page() function
KVM: MMU: don't write-protect if have new mapping to unsync page
KVM: MMU: only update unsync page in invlpg path
KVM: MMU: allow more page become unsync at gfn mapping time
KVM: MMU: allow more page become unsync at getting sp time
KVM: MMU: skip invalid sp when unprotect page
KVM: MMU: introduce some macros to cleanup hlist traverseing
KVM: MMU: split the operations of kvm_mmu_zap_page()
KVM: MMU: don't get free page number in the loop
KVM: MMU: gather remote tlb flush which occurs during page zapped
KVM: MMU: traverse sp hlish safely
KVM: MMU: reduce remote tlb flush in kvm_mmu_pte_write()
KVM: VMX: fix rcu usage warning in init_rmode()
KVM: MMU: remove unnecessary remote tlb flush
KVM: MMU: use wrapper function to flush local tlb
KVM: MMU: delay local tlb flush
KVM: MMU: rename 'page' and 'shadow_page' to 'sp'
KVM: MMU: cleanup for dirty page judgment
KVM: MMU: avoid double write protected in sync page path
KVM: MMU: don't mark pte notrap if it's just sync transient
KVM: MMU: cleanup for __mmu_unsync_walk()
KVM: MMU: clear unsync_child_bitmap completely
KVM: MMU: don't walk every parent pages while mark unsync
KVM: MMU: fix writable sync sp mapping
KVM: MMU: fix conflict access permissions in direct sp
KVM: MMU: fix direct sp's access corrupted
KVM: MMU: cleanup FNAME(fetch)() functions
KVM: VMX: fix tlb flush with invalid root
KVM: PIT: stop vpit before freeing irq_routing
KVM: MMU: add missing reserved bits check in speculative path
KVM: MMU: fix broken page accessed tracking with ept enabled
KVM: MMU: fix page dirty tracking lost while sync page
KVM: MMU: don't atomicly set spte if it's not present
KVM: MMU: cleanup spte set and accssed/dirty tracking
KVM: MMU: using __xchg_spte more smarter

Zachary Amsden (2):
KVM: SVM: Fix EFER.LME being stripped
KVM: x86: fix -DDEBUG oops

 Documentation/feature-removal-schedule.txt |   21 -
 Documentation/kvm/api.txt                  |  208 ++++-
 Documentation/kvm/mmu.txt                  |   52 ++-
 Documentation/kvm/msr.txt                  |  153 ++++
 Documentation/kvm/review-checklist.txt     |   38 +
 arch/ia64/include/asm/kvm_host.h           |    1 +
 arch/ia64/kvm/kvm-ia64.c                   |   50 +-
 arch/powerpc/include/asm/kvm_book3s.h      |   10 +-
 arch/powerpc/include/asm/kvm_fpu.h         |   27 +-
 arch/powerpc/include/asm/kvm_host.h        |   18 +-
 arch/powerpc/kernel/ppc_ksyms.c            |    4 -
 arch/powerpc/kvm/44x_tlb.c                 |    3 +-
 arch/powerpc/kvm/Makefile                  |    2 +
 arch/powerpc/kvm/book3s.c                  |   79 +-
 arch/powerpc/kvm/book3s_32_mmu.c           |    8 +-
 arch/powerpc/kvm/book3s_32_mmu_host.c      |  134 +---
 arch/powerpc/kvm/book3s_64_mmu_host.c      |  129 +---
 arch/powerpc/kvm/book3s_mmu_hpte.c         |  277 +++++++
 arch/powerpc/kvm/book3s_paired_singles.c   |   94 +--
 arch/powerpc/kvm/booke.c                   |   12 +-
 arch/powerpc/kvm/fpu.S                     |   18 +
 arch/powerpc/kvm/powerpc.c                 |   14 +-
 arch/s390/include/asm/kvm_host.h           |    5 +-
 arch/s390/kvm/intercept.c                  |    2 +-
 arch/s390/kvm/kvm-s390.c                   |   64 +--
 arch/s390/kvm/kvm-s390.h                   |    2 +-
 arch/x86/include/asm/i387.h                |    2 +
 arch/x86/include/asm/kvm.h                 |   22 +
 arch/x86/include/asm/kvm_emulate.h         |   30 +-
 arch/x86/include/asm/kvm_host.h            |   70 +--
 arch/x86/include/asm/msr-index.h           |    2 +
 arch/x86/include/asm/vmx.h                 |    5 +
 arch/x86/include/asm/xsave.h               |    6 +
 arch/x86/kernel/i387.c                     |    3 +-
 arch/x86/kernel/process.c                  |    1 +
 arch/x86/kvm/emulate.c                     |  749 ++++++++++--------
 arch/x86/kvm/i8254.c                       |  146 +++--
 arch/x86/kvm/i8254.h                       |    4 +-
 arch/x86/kvm/i8259.c                       |   48 +-
 arch/x86/kvm/irq.c                         |    2 +-
 arch/x86/kvm/irq.h                         |    4 -
 arch/x86/kvm/kvm_cache_regs.h              |    8 +
 arch/x86/kvm/lapic.c                       |   17 +-
 arch/x86/kvm/mmu.c                         |  807 ++++++++++++--------
 arch/x86/kvm/mmutrace.h                    |    2 +-
 arch/x86/kvm/paging_tmpl.h                 |  252 ++++---
 arch/x86/kvm/svm.c                         |  138 +++-
 arch/x86/kvm/timer.c                       |   16 +-
 arch/x86/kvm/vmx.c                         |  253 +++++--
 arch/x86/kvm/x86.c                         | 1174 
+++++++++++++++-------------
 arch/x86/kvm/x86.h                         |    7 -
 include/linux/kvm.h                        |   13 +
 include/linux/kvm_host.h                   |   35 +-
 include/linux/kvm_types.h                  |    4 +-
 include/linux/mm.h                         |    8 +
 mm/memory-failure.c                        |   33 +
 virt/kvm/assigned-dev.c                    |    7 +-
 virt/kvm/coalesced_mmio.c                  |    1 +
 virt/kvm/eventfd.c                         |    1 +
 virt/kvm/ioapic.c                          |    3 +-
 virt/kvm/iommu.c                           |   12 +-
 virt/kvm/irq_comm.c                        |   15 +-
 virt/kvm/kvm_main.c                        |  106 ++-
 63 files changed, 3328 insertions(+), 2103 deletions(-)
 create mode 100644 Documentation/kvm/msr.txt
 create mode 100644 Documentation/kvm/review-checklist.txt
 create mode 100644 arch/powerpc/kvm/book3s_mmu_hpte.c
Signature · 1 line
error compiling committee.c: too many arguments to function