Linus, The following changes since commit 056bb5f51c357ee00046fde4929a03468ff45e7a: arm64: kvm: decode ESR_ELx.EC when reporting exceptions (2015-01-15 12:24:52 +0000) are available in the git repository at: git://git.kernel.org/pub/scm/virt/kvm/kvm.git tags/for-linus for you to fetch changes up to 6557bada461afeaa920a189fae2cff7c8fdce39f: KVM: ia64: drop kvm.h from installed user headers (2015-02-10 09:02:10 +0100) I placed the correct conflict resolution in branch merge-resolution-3.20 of the KVM repository (based on commit 8cc748aa76c9 from your tree). In hindsight, I probably should have just delayed the last batch of ARM/ARM64 patches to the 3.20 merge window. The KVM/PPC changes will come in through the PPC maintainers, because I haven't received them yet and I might end up being offline for some part of next week. ---------------------------------------------------------------- Fairly small update, but there are some interesting new features. Common: Optional support for adding a small amount of polling on each HLT instruction executed in the guest (or equivalent for other architectures). This can improve latency up to 50% on some scenarios (e.g. O_DSYNC writes or TCP_RR netperf tests). This also has to be enabled manually for now, but the plan is to auto-tune this in the future. ARM/ARM64: the highlights are support for GICv3 emulation and dirty page tracking s390: several optimizations and bugfixes. Also a first: a feature exposed by KVM (UUID and long guest name in /proc/sysinfo) before it is available in IBM's hypervisor! :) MIPS: Bugfixes. x86: Support for PML (page modification logging, a new feature in Broadwell Xeons that speeds up dirty page tracking), nested virtualization improvements (nested APICv---a nice optimization), usual round of emulation fixes. There is also a new option to reduce latency of the TSC deadline timer in the guest; this needs to be tuned manually. Some commits are common between this pull and Catalin's; I see you have already included his tree. ARM has other conflicts where functions are added in the same place by 3.19-rc and 3.20 patches. These are not large though, and entirely within KVM. ---------------------------------------------------------------- Andre Przywara (21): ARM: KVM: extend WFI tracepoint to differentiate between wfi and wfe arm/arm64: KVM: rework MPIDR assignment and add accessors arm/arm64: KVM: pass down user space provided GIC type into vGIC code arm/arm64: KVM: refactor vgic_handle_mmio() function arm/arm64: KVM: wrap 64 bit MMIO accesses with two 32 bit ones arm/arm64: KVM: introduce per-VM ops arm/arm64: KVM: move kvm_register_device_ops() into vGIC probing arm/arm64: KVM: dont rely on a valid GICH base address arm/arm64: KVM: make the maximum number of vCPUs a per-VM value arm/arm64: KVM: make the value of ICC_SRE_EL1 a per-VM variable arm/arm64: KVM: refactor MMIO accessors arm/arm64: KVM: refactor/wrap vgic_set/get_attr() arm/arm64: KVM: add vgic.h header file arm/arm64: KVM: split GICv2 specific emulation code from vgic.c arm/arm64: KVM: add opaque private pointer to MMIO data arm/arm64: KVM: add virtual GICv3 distributor emulation arm64: GICv3: introduce symbolic names for GICv3 ICC_SGI1R_EL1 fields arm64: KVM: add SGI generation register emulation arm/arm64: KVM: enable kernel side of GICv3 emulation arm/arm64: KVM: allow userland to request a virtual GICv3 arm/arm64: KVM: force alignment of VGIC dist/CPU/redist addresses Borislav Petkov (1): kvm: Fix CR3_PCID_INVD type on 32-bit Christian Borntraeger (4): KVM: s390: make local function static KVM: s390: no need to hold the kvm->mutex for floating interrupts KVM: s390: reenable LPP facility KVM: Disable compat ioctl for s390 Christoffer Dall (2): arm/arm64: KVM: Fixup incorrect config symbol in comment KVM: Remove unused config symbol David Hildenbrand (13): KVM: s390: prevent sleep duration underflows in handle_wait() KVM: s390: base hrtimer on a monotonic clock KVM: s390: forward hrtimer if guest ckc not pending yet KVM: s390: new parameter for SIGP STOP irqs KVM: s390: handle stop irqs without action_bits KVM: s390: a VCPU may only stop when no interrupts are left pending KVM: s390: SIGP SET PREFIX cleanup s390/sclp: introduce check for the SIGP Interpretation Facility KVM: s390: only one external call may be pending at a time KVM: s390: clear the pfault queue if user space sets the invalid token KVM: s390: forward most SIGP orders to user space KVM: s390: avoid memory leaks if __inject_vm() fails KVM: s390: floating irqs: fix user triggerable endless loop Dominik Dingel (3): KVM: remove unneeded return value of vcpu_postcreate KVM: s390: move vcpu specific initalization to a later point KVM: s390: Allow userspace to limit guest memory size Ekaterina Tumanova (1): s390/kernel: Update /proc/sysinfo file with Extended Name and UUID Eric Auger (2): KVM: arm/arm64: vgic: vgic_init returns -ENODEV when no online vcpu KVM: arm/arm64: vgic: add init entry to VGIC KVM device Eugene Korenevsky (2): KVM: nVMX: Improve nested msr switch checking KVM: nVMX: consult PFEC_MASK and PFEC_MATCH when generating #PF VM-exit Fengguang Wu (1): KVM: fix "Should it be static?" warnings from sparse James Hogan (2): KVM: MIPS: Disable HTW while in guest KVM: MIPS: Don't leak FPU/DSP to guest Jason J. Herne (1): KVM: s390: Provide guest TOD Clock Get/Set Controls Jens Freimann (4): KVM: s390: fix bug in sigp emergency signal injection KVM: s390: trace correct values for set prefix and machine checks KVM: s390: fix bug in interrupt parameter check KVM: s390: remove redundant setting of interrupt type Joerg Roedel (1): kvm: iommu: Add cond_resched to legacy device assignment code Kai Huang (8): KVM: x86: flush TLB when D bit is manually changed. Optimize TLB flush in kvm_mmu_slot_remove_write_access. KVM: Rename kvm_arch_mmu_write_protect_pt_masked to be more generic for log dirty KVM: MMU: Add mmu help functions to support PML KVM: MMU: Explicitly set D-bit for writable spte. KVM: x86: Change parameter of kvm_mmu_slot_remove_write_access KVM: x86: Add new dirty logging kvm_x86_ops for PML KVM: VMX: Add PML support in VMX Marcelo Tosatti (6): KVM: x86: add method to test PIR bitmap vector KVM: x86: add option to advance tscdeadline hrtimer expiration KVM: x86: add tracepoint to wait_lapic_expire KVM: x86: workaround SuSE's 2.6.16 pvclock vs masterclock issue KVM: x86: fix lapic_timer_int_injected with APIC-v KVM: x86: revert "add method to test PIR bitmap vector" Mario Smarduch (9): KVM: Add architecture-defined TLB flush support KVM: Add generic support for dirty page logging KVM: arm: Add ARMv7 API to flush TLBs KVM: arm: Add initial dirty page locking support KVM: arm: dirty logging write protect support KVM: arm: page logging 2nd stage fault handling KVM: arm64: ARMv8 header changes for page logging KVM: arm64: Add HYP interface to flush VM Stage 1/2 TLB entries KVM: arm/arm64: Enable Dirty Page logging for ARMv8 Michael Mueller (2): KVM: s390: use facilities and cpu_id per KVM KVM: s390: add cpu model support Mike Frysinger (1): KVM: ia64: drop kvm.h from installed user headers Nadav Amit (15): KVM: x86: pop sreg accesses only 2 bytes KVM: x86: fnstcw and fnstsw may cause spurious exception KVM: x86: JMP/CALL using call- or task-gate causes exception KVM: x86: em_call_far should return failure result KVM: x86: POP [ESP] is not emulated correctly KVM: x86: Do not set access bit on accessed segments KVM: x86: Access to LDT/GDT that wraparound is incorrect KVM: x86: #PF error-code on R/W operations is wrong KVM: x86: Dirty the dest op page on cmpxchg emulation KVM: x86: Wrong operand size for far ret KVM: x86: IRET emulation does not clear NMI masking KVM: x86: ARPL emulation can cause spurious exceptions KVM: x86: Fix defines in emulator.c KVM: x86: 32-bit wraparound read/write not emulated correctly KVM: x86: Emulation of call may use incorrect stack size Nicholas Krause (2): KVM: x86: Remove FIXMEs in emulate.c for the function,task_switch_32 kvm: x86: Remove kvm_make_request from lapic.c Paolo Bonzini (12): KVM: x86: mmu: do not use return to tail-call functions that return void KVM: x86: mmu: remove argument to kvm_init_shadow_mmu and kvm_init_shadow_ept_mmu KVM: x86: mmu: remove ASSERT(vcpu) KVM: x86: mmu: replace assertions with MMU_WARN_ON, a conditional WARN_ON KVM: x86: switch to kvm_get_dirty_log_protect Merge branch 'arm64/common-esr-macros' of git://git.kernel.org/.../mark/linux into kvm-next Merge tag 'kvm-arm-for-3.20' of git://git.kernel.org/.../kvmarm/kvmarm into kvm-next Merge tag 'kvm-s390-next-20150122' of git://git.kernel.org/.../kvms390/linux into kvm-next kvm: vmx: fix oops with explicit flexpriority=0 option kvm: add halt_poll_ns module parameter Merge tag 'kvm-s390-next-20150209' of git://git.kernel.org/.../kvms390/linux into HEAD KVM: x86: emulate: correct page fault error code for NoWrite instructions Radim Krčmář (6): KVM: x86: allow TSC deadline timer on all hosts KVM: x86: return bool from kvm_apic_match*() KVM: x86: cleanup kvm_apic_match_*() KVM: x86: replace 0 with APIC_DEST_PHYSICAL KVM: x86: fix x2apic logical address matching KVM: x86: fix build with !CONFIG_SMP Rickard Strandqvist (1): x86: kvm: vmx: Remove some unused functions Thomas Huth (1): KVM: s390: Take addressing mode into account for MVPG interception Tiejun Chen (3): kvm: x86: vmx: NULL out hwapic_isr_update() in case of !enable_apicv kvm: update_memslots: clean flags for invalid memslots kvm: remove KVM_MMIO_SIZE Tony Krowiak (2): KVM: s390/cpacf: Enable/disable protected key functions for kvm guest KVM: s390/CPACF: Choose crypto control block format Wei Huang (1): arm/arm64: KVM: add tracing support for arm64 exit handler Wincy Van (7): KVM: nVMX: Add nested msr load/restore algorithm KVM: nVMX: Prepare for using hardware MSR bitmap KVM: nVMX: Enable nested virtualize x2apic mode KVM: nVMX: Make nested control MSRs per-cpu KVM: nVMX: Enable nested apic register virtualization KVM: nVMX: Enable nested virtual interrupt delivery KVM: nVMX: Enable nested posted interrupt processing Documentation/virtual/kvm/api.txt | 35 +- Documentation/virtual/kvm/devices/arm-vgic.txt | 37 +- Documentation/virtual/kvm/devices/vm.txt | 59 ++ arch/arm/include/asm/kvm_asm.h | 1 + arch/arm/include/asm/kvm_emulate.h | 5 +- arch/arm/include/asm/kvm_host.h | 6 + arch/arm/include/asm/kvm_mmio.h | 1 + arch/arm/include/asm/kvm_mmu.h | 21 + arch/arm/include/asm/pgtable-3level.h | 1 + arch/arm/include/uapi/asm/kvm.h | 2 + arch/arm/kvm/Kconfig | 2 + arch/arm/kvm/Makefile | 1 + arch/arm/kvm/arm.c | 58 +- arch/arm/kvm/handle_exit.c | 8 +- arch/arm/kvm/interrupts.S | 11 + arch/arm/kvm/mmu.c | 271 +++++- arch/arm/kvm/psci.c | 17 +- arch/arm/kvm/trace.h | 11 +- arch/arm64/include/asm/esr.h | 1 + arch/arm64/include/asm/kvm_asm.h | 1 + arch/arm64/include/asm/kvm_emulate.h | 10 +- arch/arm64/include/asm/kvm_host.h | 7 + arch/arm64/include/asm/kvm_mmio.h | 1 + arch/arm64/include/asm/kvm_mmu.h | 21 + arch/arm64/include/asm/pgtable-hwdef.h | 1 + arch/arm64/include/uapi/asm/kvm.h | 9 + arch/arm64/kernel/asm-offsets.c | 1 + arch/arm64/kvm/Kconfig | 2 + arch/arm64/kvm/Makefile | 2 + arch/arm64/kvm/handle_exit.c | 13 +- arch/arm64/kvm/hyp.S | 22 + arch/arm64/kvm/sys_regs.c | 40 +- arch/arm64/kvm/trace.h | 55 ++ arch/arm64/kvm/vgic-v3-switch.S | 14 +- arch/ia64/include/uapi/asm/Kbuild | 1 - arch/mips/include/asm/kvm_host.h | 1 + arch/mips/kvm/locore.S | 2 +- arch/mips/kvm/mips.c | 23 +- arch/powerpc/include/asm/kvm_host.h | 1 + arch/powerpc/kvm/book3s.c | 1 + arch/powerpc/kvm/booke.c | 1 + arch/powerpc/kvm/powerpc.c | 3 +- arch/s390/include/asm/kvm_host.h | 56 +- arch/s390/include/asm/sclp.h | 4 +- arch/s390/include/asm/sysinfo.h | 10 +- arch/s390/include/uapi/asm/kvm.h | 37 + arch/s390/kernel/sysinfo.c | 29 + arch/s390/kvm/gaccess.c | 4 +- arch/s390/kvm/intercept.c | 41 +- arch/s390/kvm/interrupt.c | 191 ++-- arch/s390/kvm/kvm-s390.c | 596 +++++++++++-- arch/s390/kvm/kvm-s390.h | 19 +- arch/s390/kvm/priv.c | 13 +- arch/s390/kvm/sigp.c | 160 ++-- arch/s390/kvm/trace-s390.h | 14 +- arch/x86/include/asm/kvm_emulate.h | 1 + arch/x86/include/asm/kvm_host.h | 59 +- arch/x86/include/asm/vmx.h | 4 + arch/x86/include/uapi/asm/msr-index.h | 3 + arch/x86/include/uapi/asm/vmx.h | 6 + arch/x86/kvm/Kconfig | 1 + arch/x86/kvm/emulate.c | 230 +++-- arch/x86/kvm/ioapic.h | 2 +- arch/x86/kvm/iommu.c | 4 +- arch/x86/kvm/lapic.c | 147 ++-- arch/x86/kvm/lapic.h | 6 +- arch/x86/kvm/mmu.c | 351 ++++++-- arch/x86/kvm/mmu.h | 17 +- arch/x86/kvm/svm.c | 4 +- arch/x86/kvm/trace.h | 38 + arch/x86/kvm/vmx.c | 1086 ++++++++++++++++++++--- arch/x86/kvm/x86.c | 209 +++-- arch/x86/kvm/x86.h | 3 + drivers/irqchip/irq-gic-v3.c | 14 +- drivers/s390/char/sclp_early.c | 8 + include/kvm/arm_vgic.h | 43 +- include/linux/irqchip/arm-gic-v3.h | 44 + include/linux/kvm_host.h | 17 +- include/trace/events/kvm.h | 19 + include/uapi/linux/kvm.h | 9 + virt/kvm/Kconfig | 10 + virt/kvm/arm/vgic-v2-emul.c | 847 ++++++++++++++++++ virt/kvm/arm/vgic-v2.c | 4 + virt/kvm/arm/vgic-v3-emul.c | 1036 ++++++++++++++++++++++ virt/kvm/arm/vgic-v3.c | 82 +- virt/kvm/arm/vgic.c | 1127 ++++++------------------ virt/kvm/arm/vgic.h | 123 +++ virt/kvm/kvm_main.c | 144 ++- 88 files changed, 6026 insertions(+), 1626 deletions(-) create mode 100644 arch/arm64/kvm/trace.h create mode 100644 virt/kvm/arm/vgic-v2-emul.c create mode 100644 virt/kvm/arm/vgic-v3-emul.c create mode 100644 virt/kvm/arm/vgic.h -- 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