Skip to contentSkip to conversation

Second batch of KVM changes for 4.7

GIT PULL Radim Krčmář 1 participant 1 message May 26, 2016 KVM

lore
Share & tools
lore
#0 lore raw

Linus,

The following changes since commit 9842df62004f366b9fed2423e24df10542ee0dc5:

KVM: MTRR: remove MSR 0x2f8 (2016-05-18 18:04:32 +0200)

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 fabc712866435660f7fa1070e1fabe29eba5bc4c:

tools: kvm_stat: Add comments (2016-05-25 16:12:06 +0200)

----------------------------------------------------------------
- move kvm_stat tool from QEMU repo into tools/kvm/kvm_stat (kvm_stat had nothing to do with QEMU in the first place -- the tool only interprets debugfs)
- expose per-vm statistics in debugfs and support them in kvm_stat (KVM always collected per-vm statistics, but they were summarised into global statistics)

x86:
- fix dynamic APICv (VMX was improperly configured and a guest could access host's APIC MSRs, CVE-2016-4440)
- minor fixes

ARM changes from Christoffer Dall:
"This set of changes include the new vgic, which is a reimplementation
of our horribly broken legacy vgic implementation. The two implementations will live side-by-side (with the new being the configured default) for one kernel release and then we'll remove the legacy one.

Also fixes a non-critical issue with virtual abort injection to guests."

----------------------------------------------------------------
Andre Przywara (29):
KVM: arm/arm64: vgic: streamline vgic_update_irq_pending() interface
KVM: arm/arm64: vgic: avoid map in kvm_vgic_inject_mapped_irq()
KVM: arm/arm64: vgic: avoid map in kvm_vgic_map_is_active()
KVM: arm/arm64: vgic: avoid map in kvm_vgic_unmap_phys_irq()
KVM: arm/arm64: arch_timer: Remove irq_phys_map
KVM: arm/arm64: vgic: Remove irq_phys_map from interface
KVM: arm/arm64: pmu: abstract access to number of SPIs
KVM: arm/arm64: move GICv2 emulation defines into arm-gic-v3.h
KVM: arm/arm64: vgic-new: Add GICv2 MMIO handling framework
KVM: arm/arm64: vgic-new: Add ENABLE registers handlers
KVM: arm/arm64: vgic-new: Add PENDING registers handlers
KVM: arm/arm64: vgic-new: Add ACTIVE registers handlers
KVM: arm/arm64: vgic-new: Add PRIORITY registers handlers
KVM: arm/arm64: vgic-new: Add CONFIG registers handlers
KVM: arm/arm64: vgic-new: Add TARGET registers handlers
KVM: arm/arm64: vgic-new: Add SGIR register handler
KVM: arm/arm64: vgic-new: Add SGIPENDR register handlers
KVM: arm/arm64: vgic-new: Add GICv3 MMIO handling framework
KVM: arm/arm64: vgic-new: Add GICv3 CTLR, IIDR, TYPER handlers
KVM: arm/arm64: vgic-new: Add GICv3 redistributor IIDR and TYPER handler
KVM: arm/arm64: vgic-new: Add GICv3 IDREGS register handler
KVM: arm/arm64: vgic-new: Add GICv3 IROUTER register handlers
KVM: arm/arm64: vgic-new: Add GICv3 SGI system register trap handler
KVM: arm/arm64: vgic-new: Add userland access to VGIC dist registers
KVM: arm/arm64: vgic-new: Add GICH_VMCR accessors
KVM: arm/arm64: vgic-new: Add userland GIC CPU interface access
KVM: arm/arm64: vgic-new: Wire up irqfd injection
KVM: arm/arm64: vgic-new: implement mapped IRQ handling
KVM: arm/arm64: vgic-new: enable build

Christoffer Dall (12):
KVM: arm/arm64: Remove the IRQ field from struct irq_phys_map
KVM: arm/arm64: Move timer IRQ map to latest possible time
KVM: arm/arm64: Get rid of vgic_cpu->nr_lr
KVM: arm/arm64: Fix MMIO emulation data handling
KVM: arm/arm64: Export mmio_read/write_bus
KVM: arm/arm64: Provide functionality to pause and resume a guest
KVM: arm/arm64: vgic-new: Add data structure definitions
KVM: arm/arm64: vgic-new: Add acccessor to new struct vgic_irq instance
KVM: arm/arm64: vgic-new: Implement virtual IRQ injection
KVM: arm/arm64: vgic-new: Add IRQ sorting
KVM: arm/arm64: vgic-new: Export register access interface
KVM: arm/arm64: vgic-new: Synchronize changes to active state

Dan Carpenter (1):
svm: bitwise vs logical op typo

Eric Auger (12):
KVM: arm/arm64: vgic-new: Implement kvm_vgic_vcpu_pending_irq
KVM: arm/arm64: vgic-new: vgic_kvm_device: KVM device ops registration
KVM: arm/arm64: vgic-new: vgic_kvm_device: KVM_DEV_ARM_VGIC_GRP_NR_IRQS
KVM: arm/arm64: vgic-new: vgic_kvm_device: KVM_DEV_ARM_VGIC_GRP_CTRL
KVM: arm/arm64: vgic-new: vgic_kvm_device: implement kvm_vgic_addr
KVM: arm/arm64: vgic-new: vgic_kvm_device: KVM_DEV_ARM_VGIC_GRP_ADDR
KVM: arm/arm64: vgic-new: vgic_kvm_device: access to VGIC registers
KVM: arm/arm64: vgic-new: vgic_init: implement kvm_vgic_hyp_init
KVM: arm/arm64: vgic-new: vgic_init: implement vgic_create
KVM: arm/arm64: vgic-new: vgic_init: implement vgic_init
KVM: arm/arm64: vgic-new: vgic_init: implement map_resources
KVM: arm/arm64: vgic-new: Add vgic_v2/v3_enable

Hemant Kumar (1):
tools: kvm_stat: Powerpc related fixes

Jan Kiszka (2):
KVM: Unify traced vector format
KVM: SVM: Add more SVM_EXIT_REASONS

Janosch Frank (5):
tools: Add kvm_stat vm monitor script
MAINTAINERS: Add kvm tools
KVM: Create debugfs dir and stat files for each VM
tools: kvm_stat: Introduce pid monitoring
tools: kvm_stat: Add comments

Marc Zyngier (5):
KVM: arm/arm64: vgic-new: Add IRQ sync/flush framework
KVM: arm/arm64: vgic-new: Add GICv2 world switch backend
KVM: arm/arm64: vgic-new: Add GICv3 world switch backend
KVM: arm/arm64: vgic-new: Add MMIO handling framework
KVM: arm/arm64: vgic-new: Add CTLR, TYPER and IIDR handlers

Matt Evans (1):
kvm: arm64: Fix EC field in inject_abt64

Paolo Bonzini (2):
Merge tag 'kvm-arm-for-4-7-take2' of git://git.kernel.org/.../kvmarm/kvmarm into kvm-next
tools: Add kvm_stat man page

Roman Kagan (1):
kvm:vmx: more complete state update on APICv on/off

 MAINTAINERS                         |    1 +
 arch/arm/include/asm/kvm_host.h     |    6 +
 arch/arm/include/asm/kvm_mmio.h     |    3 +
 arch/arm/kvm/Kconfig                |    7 +
 arch/arm/kvm/Makefile               |   11 +
 arch/arm/kvm/arm.c                  |   37 +-
 arch/arm/kvm/mmio.c                 |   24 +-
 arch/arm64/include/asm/kvm_host.h   |    6 +
 arch/arm64/include/asm/kvm_mmio.h   |    3 +
 arch/arm64/kvm/Kconfig              |    7 +
 arch/arm64/kvm/Makefile             |   12 +
 arch/arm64/kvm/inject_fault.c       |    2 +-
 arch/x86/include/uapi/asm/svm.h     |   44 +-
 arch/x86/kvm/svm.c                  |    4 +-
 arch/x86/kvm/vmx.c                  |   46 +-
 include/kvm/arm_arch_timer.h        |   11 +-
 include/kvm/arm_vgic.h              |   20 +-
 include/kvm/vgic/vgic.h             |  246 ++++++++
 include/linux/irqchip/arm-gic-v3.h  |    6 +
 include/linux/irqchip/arm-gic.h     |    2 +
 include/linux/kvm_host.h            |    7 +
 include/trace/events/kvm.h          |    6 +-
 tools/Makefile                      |    6 +-
 tools/kvm/kvm_stat/Makefile         |   41 ++
 tools/kvm/kvm_stat/kvm_stat         | 1127 +++++++++++++++++++++++++++++++++++
 tools/kvm/kvm_stat/kvm_stat.txt     |   63 ++
 virt/kvm/arm/arch_timer.c           |   68 ++-
 virt/kvm/arm/hyp/timer-sr.c         |    5 +-
 virt/kvm/arm/hyp/vgic-v2-sr.c       |   17 +-
 virt/kvm/arm/pmu.c                  |   25 +-
 virt/kvm/arm/vgic-v2.c              |    4 +-
 virt/kvm/arm/vgic-v3.c              |    8 +-
 virt/kvm/arm/vgic.c                 |   86 +--
 virt/kvm/arm/vgic/vgic-init.c       |  452 ++++++++++++++
 virt/kvm/arm/vgic/vgic-irqfd.c      |   52 ++
 virt/kvm/arm/vgic/vgic-kvm-device.c |  431 ++++++++++++++
 virt/kvm/arm/vgic/vgic-mmio-v2.c    |  446 ++++++++++++++
 virt/kvm/arm/vgic/vgic-mmio-v3.c    |  455 ++++++++++++++
 virt/kvm/arm/vgic/vgic-mmio.c       |  526 ++++++++++++++++
 virt/kvm/arm/vgic/vgic-mmio.h       |  150 +++++
 virt/kvm/arm/vgic/vgic-v2.c         |  352 +++++++++++
 virt/kvm/arm/vgic/vgic-v3.c         |  330 ++++++++++
 virt/kvm/arm/vgic/vgic.c            |  619 +++++++++++++++++++
 virt/kvm/arm/vgic/vgic.h            |  131 ++++
 virt/kvm/kvm_main.c                 |  187 +++++-
 45 files changed, 5900 insertions(+), 192 deletions(-)
 create mode 100644 include/kvm/vgic/vgic.h
 create mode 100644 tools/kvm/kvm_stat/Makefile
 create mode 100755 tools/kvm/kvm_stat/kvm_stat
 create mode 100644 tools/kvm/kvm_stat/kvm_stat.txt
 create mode 100644 virt/kvm/arm/vgic/vgic-init.c
 create mode 100644 virt/kvm/arm/vgic/vgic-irqfd.c
 create mode 100644 virt/kvm/arm/vgic/vgic-kvm-device.c
 create mode 100644 virt/kvm/arm/vgic/vgic-mmio-v2.c
 create mode 100644 virt/kvm/arm/vgic/vgic-mmio-v3.c
 create mode 100644 virt/kvm/arm/vgic/vgic-mmio.c
 create mode 100644 virt/kvm/arm/vgic/vgic-mmio.h
 create mode 100644 virt/kvm/arm/vgic/vgic-v2.c
 create mode 100644 virt/kvm/arm/vgic/vgic-v3.c
 create mode 100644 virt/kvm/arm/vgic/vgic.c
 create mode 100644 virt/kvm/arm/vgic/vgic.h