[XEN,v3,00/11] xen: arm: context switch vtimer PPI state
mbox series

Message ID 20191115200115.44890-1-stewart.hildebrand@dornerworks.com
Headers show
Series
  • xen: arm: context switch vtimer PPI state
Related show

Message

Stewart Hildebrand Nov. 15, 2019, 8:01 p.m. UTC
This is an update to Ian Campbell's work to route timer PPIs to guests
[1].

I attempted to address most of the feedback on v2 of the series. There
are a couple of comments I was unsure about - instances of this are
noted in the individual patches.

Highlights in v3:
  * Rebase
  * Tested on QEMU with GICv3
  * Tested on Xilinx Zynq UltraScale+ with GICv2

While I build-tested with CONFIG_NEW_VGIC=y, I only did a quick runtime
test with the new vGIC and I encountered an ASSERT failure:

  Assertion 'irq->hwintid >= VGIC_NR_PRIVATE_IRQS' failed at vgic-mmio.c:96

Because of this, and because there is still some feedback outstanding
from v2, portions of this series may be considered RFC-ish (especially
the last patch "context switch vtimer PPI state").

[1] https://lists.xenproject.org/archives/html/xen-devel/2015-11/msg00921.html


Ian Campbell (7):
  xen: arm: fix indentation of struct vtimer
  xen: arm: fix typo in the description of struct pending_irq->desc
  xen: arm: Refactor route_irq_to_guest
  xen: arm: add interfaces to save/restore the state of a PPI.
  xen: arm: gic: supporting routing a PPI to the current vcpu.
  xen: arm: context switch vtimer PPI state.
  HACK: Force virt timer to PPI0 (IRQ16)

Stewart Hildebrand (4):
  xen: arm: remove is_assignable_irq
  Add NR_SGIS and NR_PPIS definitions to irq.h
  xen: arm: vgic: allow delivery of PPIs to guests
  xen: arm: vgic: don't fail if IRQ is already connected

 xen/arch/arm/gic-v2.c            |  69 +++++++++++
 xen/arch/arm/gic-v3.c            |  69 +++++++++++
 xen/arch/arm/gic-vgic.c          |  33 +++--
 xen/arch/arm/gic.c               |  79 ++++++++++++
 xen/arch/arm/irq.c               | 202 ++++++++++++++++++++++---------
 xen/arch/arm/time.c              |  26 +---
 xen/arch/arm/vgic.c              |   6 +-
 xen/arch/arm/vgic/vgic.c         |   4 +
 xen/arch/arm/vtimer.c            |  45 ++++++-
 xen/include/asm-arm/domain.h     |  22 +++-
 xen/include/asm-arm/gic.h        |  24 ++++
 xen/include/asm-arm/irq.h        |   9 +-
 xen/include/asm-arm/perfc_defn.h |   1 -
 xen/include/asm-arm/vgic.h       |   2 +-
 xen/include/public/arch-arm.h    |   2 +-
 15 files changed, 483 insertions(+), 110 deletions(-)