[PATCH v5 00/12] KVM/ARM vGIC support
Christoffer Dall
c.dall at virtualopensystems.com
Tue Jan 8 13:41:23 EST 2013
The following series implements support for the virtual generic
interrupt controller architecture for KVM/ARM.
This patch series can also be pulled from:
git://github.com/virtualopensystems/linux-kvm-arm.git
branch: kvm-arm-v15-vgic
Changes since v4:
- Large number of commenting and formatting changes
- Don't rely on the vgic_hcr default value
- Fix bug in irq_fgx expand/collapse functions
- Sanitize use of bitmaps
- Do not use elrsr when queueing an interrupt
- Deassert SGIs and SPIs that have already been queued
- Set VMCR to 0 on vcpu init
- Compute number of list registers once at init time
- Restructure bytemap/bitmap accessor functions
- Improve readability by adding accessor functions
- Define GICH_ constants in gic.h and use these in the vgic code
- Explain SGI handling in comment
- Error patch and return value fixes and cleanups
- Use defines instead of all hardcoded IRQ numbers
- Refactor level interrupt handling
- Fix several maintenace-interrupt related bugs
- Add CPU hotplug notifier
Changes since v3:
- Change struct kvm_device_addr to use 64 bits for ID field
Changes since v2:
- Get rid of hardcoded guest cpu and distributor physical addresses
and instead provide the address through the KVM_SET_DEVICE_ADDRESS
ioctl.
- Fix level/edge bugs
- Fix reboot bug: retire queued, disabled interrupts
---
Christoffer Dall (2):
KVM: ARM: Introduce KVM_SET_DEVICE_ADDRESS ioctl
ARM: KVM: VGIC accept vcpu and dist base addresses from user space
Marc Zyngier (10):
ARM: KVM: Keep track of currently running vcpus
ARM: gic: define GICH offsets for VGIC support
ARM: KVM: Initial VGIC infrastructure code
ARM: KVM: VGIC distributor handling
ARM: KVM: VGIC virtual CPU interface management
ARM: KVM: vgic: retire queued, disabled interrupts
ARM: KVM: VGIC interrupt injection
ARM: KVM: VGIC control interface world switch
ARM: KVM: VGIC initialisation code
ARM: KVM: Add VGIC configuration option
Documentation/virtual/kvm/api.txt | 38 +
arch/arm/include/asm/hardware/gic.h | 25 +
arch/arm/include/asm/kvm_host.h | 18
arch/arm/include/asm/kvm_vgic.h | 220 +++++
arch/arm/include/uapi/asm/kvm.h | 16
arch/arm/kernel/asm-offsets.c | 12
arch/arm/kvm/Kconfig | 8
arch/arm/kvm/Makefile | 1
arch/arm/kvm/arm.c | 162 ++++
arch/arm/kvm/interrupts.S | 4
arch/arm/kvm/interrupts_head.S | 74 ++
arch/arm/kvm/mmio.c | 3
arch/arm/kvm/vgic.c | 1492 +++++++++++++++++++++++++++++++++++
include/uapi/linux/kvm.h | 8
14 files changed, 2069 insertions(+), 12 deletions(-)
create mode 100644 arch/arm/include/asm/kvm_vgic.h
create mode 100644 arch/arm/kvm/vgic.c
--
More information about the linux-arm-kernel
mailing list