[PATCH v3 0/2] VGIC early initialization initiated by user-space

Eric Auger eric.auger at linaro.org
Mon Dec 15 09:43:31 PST 2014


Since the advent of VGIC dynamic initialization, this latter is
initialized quite late on the first vcpu run or "on-demand", when
injecting an IRQ or when the guest sets its registers.

This series now allows the user space to explicitly request the VGIC init,
when the dimensioning parameters have been set: number of IRQs, number of
vCPUs. The target state is "initialized".

- the first patch file changes the error returned by vgic_init when no
  online vcpu can be found.
- the second adds a new entry to the VGIC KVM device that allows
  the user-space to manually request the VGIC init:
  - a new KVM_DEV_ARM_VGIC_GRP_CTRL group is introduced.
  - its first attribute is KVM_DEV_ARM_VGIC_CTRL_INIT

Applies on top of Christoffer's series:
"[PATCH v2 0/6] Fix vgic initialization problems"

- can be found at:
  http://git.linaro.org/people/eric.auger/linux.git,
  branch kvmarm-next-vgic-early-init-v3-official)

v2 -> v3:
- in KVM_DEV_ARM_VGIC_GRP_CTRL: vgic_init is called in place of former
  kvm_vgic_init. Means this control moves the VGIC in initialized state
  and not in ready state as before.
- "[PATCH v2 3/4] KVM: arm/arm64: check vgic_initialized before VCPU creation"
  removed since included in Christoffer's
  "arm/arm64: KVM: Don't allow creating VCPUs after vgic_initialized"
- [PATCH v2 4/4] KVM: arm/arm64: vgic: check vgic_initialized in
  KVM_DEV_ARM_VGIC_GRP_ADDR removed since I noticed vgic_ioaddr_assign
  would return -EEXIST in case vgic_map_resources were already been called.
- rewording in cover letter

v1 -> v2:
- 1, 3, 4 patch files added
- some rewording in vgic device documentation


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

 Documentation/virtual/kvm/devices/arm-vgic.txt | 11 +++++++++++
 arch/arm/include/uapi/asm/kvm.h                |  2 ++
 arch/arm64/include/uapi/asm/kvm.h              |  2 ++
 virt/kvm/arm/vgic.c                            | 16 ++++++++++++++--
 4 files changed, 29 insertions(+), 2 deletions(-)

-- 
1.9.1




More information about the linux-arm-kernel mailing list