Skip to content

KVM/ARM vGIC support

Christoffer Dall kvm linux-arm-kernel 11 versions – In review

Get series with b4
b4 am 20130116180013.29393.49165.stgit@ubuntu

Versions newest first · linked by author and title

  1. v6 Latest13 patches 3 repliesIn review
  2. v5 posting 2/212 patches 34 repliesSuperseded
  3. v5 posting 1/214 patches 65 repliesSuperseded
Earlier versions · 8
VersionPostedPatchesRepliesStatus
v4 posting 2/213 patches44 repliesSuperseded
v4 posting 1/214 patches50 repliesSuperseded
v3 posting 2/213 patches3 repliesSuperseded
v3 posting 1/214 patches2 repliesSuperseded
v2 posting 3/310 patches8 repliesSuperseded
v2 posting 2/314 patches8 repliesSuperseded
v2 posting 1/35 of 10 patches1 replySuperseded
v110 patches2 repliesSuperseded

Changes in v6 from the cover letter

- Renamed sync_{to,from} to {flush,sync}_hwstate
- Fix read/write length for acceses shorter than words
- Cosmetic fixes

Patches in v6 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/13ARM: gic: add missing distributor defintionsarch/arm/include/asm/hardware/gic.h+3 -10 replies
2/13KVM: ARM: Introduce KVM_SET_DEVICE_ADDRESS ioctlDocumentation/virtual/kvm/api.txt arch/arm/include/uapi/asm/kvm.h arch/arm/kvm/arm.c +1 more+80 -13 replies
3/13ARM: KVM: Keep track of currently running vcpusarch/arm/include/asm/kvm_host.h arch/arm/kvm/arm.c+40 -00 replies
4/13ARM: gic: define GICH offsets for VGIC supportarch/arm/include/asm/hardware/gic.h+25 -00 replies
5/13ARM: KVM: Initial VGIC infrastructure codearch/arm/include/asm/kvm_host.h arch/arm/include/asm/kvm_vgic.h arch/arm/kvm/Makefile +4 more+275 -10 replies
6/13ARM: KVM: VGIC accept vcpu and dist base addresses from user spaceDocumentation/virtual/kvm/api.txt arch/arm/include/asm/kvm_vgic.h arch/arm/include/uapi/asm/kvm.h +2 more+88 -10 replies
7/13ARM: KVM: VGIC distributor handlingarch/arm/include/asm/kvm_vgic.h arch/arm/kvm/vgic.c+677 -10 replies
8/13ARM: KVM: VGIC virtual CPU interface managementarch/arm/include/asm/kvm_vgic.h arch/arm/kvm/vgic.c+357 -10 replies
9/13ARM: KVM: vgic: retire queued, disabled interruptsarch/arm/kvm/vgic.c+30 -00 replies
10/13ARM: KVM: VGIC interrupt injectionarch/arm/include/asm/kvm_vgic.h arch/arm/kvm/arm.c arch/arm/kvm/vgic.c+170 -100 replies
11/13ARM: KVM: VGIC control interface world switcharch/arm/kernel/asm-offsets.c arch/arm/kvm/interrupts_head.S+86 -00 replies
12/13ARM: KVM: VGIC initialisation codearch/arm/include/asm/kvm_vgic.h arch/arm/kvm/arm.c arch/arm/kvm/vgic.c+249 -00 replies
13/13ARM: KVM: Add VGIC configuration optionarch/arm/kvm/Kconfig+8 -00 replies

Reviews trailers per patch

All 13 patches have a Reviewed-by or Acked-by.

PatchWill Deacon
1/13R-b
2/13R-b
3/13R-b
4/13R-b
5/13R-b
6/13R-b
7/13R-b
8/13R-b
9/13R-b
10/13R-b
11/13R-b
12/13R-b
13/13R-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v6 thread

Cover letter [PATCH v6 00/13] KVM/ARM vGIC support

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-v16-vgic

Changes since v5:
- Renamed sync_{to,from} to {flush,sync}_hwstate
- Fix read/write length for acceses shorter than words
- Cosmetic fixes

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 (3):
ARM: gic: add missing distributor defintions
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 |   29 +
 arch/arm/include/asm/kvm_host.h     |   18 
 arch/arm/include/asm/kvm_vgic.h     |  221 +++++
 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                 | 1504 +++++++++++++++++++++++++++++++++++
 include/uapi/linux/kvm.h            |    8 
 14 files changed, 2085 insertions(+), 13 deletions(-)
 create mode 100644 arch/arm/include/asm/kvm_vgic.h
 create mode 100644 arch/arm/kvm/vgic.c