All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 00/19] GICv4 Support for Xen
@ 2026-02-02 16:14 Mykyta Poturai
  2026-02-02 16:14 ` [RFC PATCH 02/19] arm/gicv4-its: Add GICv4 ITS command definitions Mykyta Poturai
                   ` (19 more replies)
  0 siblings, 20 replies; 42+ messages in thread
From: Mykyta Poturai @ 2026-02-02 16:14 UTC (permalink / raw)
  To: xen-devel@lists.xenproject.org
  Cc: xakep.amatop@gmail.com, Mykyta Poturai, Stefano Stabellini,
	Julien Grall, Bertrand Marquis, Michal Orzel, Volodymyr Babchuk,
	Andrew Cooper, Anthony PERARD, Jan Beulich, Roger Pau Monné

This series introduces GICv4 direct LPI injection for Xen.

Direct LPI injection relies on the GIC tracking the mapping between physical and
virtual CPUs. Each VCPU requires a VPE that is created and registered with the
GIC via the `VMAPP` ITS command. The GIC is then informed of the current
VPE-to-PCPU placement by programming `VPENDBASER` and `VPROPBASER` in the
appropriate redistributor. LPIs are associated with VPEs through the `VMAPTI`
ITS command, after which the GIC handles delivery without trapping into the
hypervisor for each interrupt.

When a VPE is not scheduled but has pending interrupts, the GIC raises a per-VPE
doorbell LPI. Doorbells are owned by the hypervisor and prompt rescheduling so
the VPE can drain its pending LPIs.

Because GICv4 lacks a native doorbell invalidation mechanism, this series
includes a helper that invalidates doorbell LPIs via synthetic “proxy” devices,
following the approach used until GICv4.1.

All of this work is mostly based on the work of Penny Zheng
<penny.zheng@arm.com> and Luca Fancellu <luca.fancellu@arm.com>. And also from
Linux patches by Mark Zyngier.

Some patches are still a little rough and need some styling fixes and more
testing, as all of them needed to be carved line by line from a giant ~4000 line
patch. This RFC is directed mostly to get a general idea if the proposed
approach is suitable and OK with everyone. And there is still an open question
of how to handle Signed-off-by lines for Penny and Luca, since they have not
indicated their preference yet.

Mykyta Poturai (19):
  arm/gicv4 add management structure definitions
  arm/gicv4-its: Add GICv4 ITS command definitions
  arm/its: Export struct its_device
  arm/its: Add vlpi configuration
  arm/irq: Add hw flag to pending_irq
  arm/gicv4-its: Add VLPI map/unmap operations
  xen/domain: Alloc enough pages for VCPU struct
  arm/gic: Keep track of GIC features
  arm/its: Implement LPI invalidation
  arm/its: Keep track of BASER regs
  arm/its: Add ITS VM and VPE allocation/teardown
  arm/gic: Add VPENDBASER/VPROPBASER accessors
  arm/gic: VPE scheduling
  arm/its: VPE affinity changes
  arm: Add gicv4 to domain creation
  arm/gic: Fix LR group handling for GICv4
  arm/gicv4: Handle doorbells
  arm/gic: Add VPE proxy support
  arm/gicv4: Add GICv4 to the build system

 xen/arch/arm/Kconfig                   |    6 +
 xen/arch/arm/Makefile                  |    1 +
 xen/arch/arm/dom0less-build.c          |    1 +
 xen/arch/arm/domain.c                  |   16 +
 xen/arch/arm/gic-v2.c                  |    2 +-
 xen/arch/arm/gic-v3-its.c              |  339 +++++--
 xen/arch/arm/gic-v3-lpi.c              |  169 +++-
 xen/arch/arm/gic-v3.c                  |  215 ++++-
 xen/arch/arm/gic-v4-its.c              | 1136 ++++++++++++++++++++++++
 xen/arch/arm/gic-vgic.c                |    6 +
 xen/arch/arm/include/asm/gic.h         |    4 +-
 xen/arch/arm/include/asm/gic_v3_defs.h |   22 +
 xen/arch/arm/include/asm/gic_v3_its.h  |  139 ++-
 xen/arch/arm/include/asm/gic_v4_its.h  |  114 +++
 xen/arch/arm/include/asm/vgic.h        |   79 +-
 xen/arch/arm/vgic-v3-its.c             |   60 +-
 xen/arch/arm/vgic.c                    |   37 +-
 xen/common/domain.c                    |   14 +-
 xen/include/public/arch-arm.h          |    2 +
 19 files changed, 2174 insertions(+), 188 deletions(-)
 create mode 100644 xen/arch/arm/gic-v4-its.c
 create mode 100644 xen/arch/arm/include/asm/gic_v4_its.h

-- 
2.51.2

^ permalink raw reply	[flat|nested] 42+ messages in thread

end of thread, other threads:[~2026-03-17  9:11 UTC | newest]

Thread overview: 42+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-02 16:14 [RFC PATCH 00/19] GICv4 Support for Xen Mykyta Poturai
2026-02-02 16:14 ` [RFC PATCH 02/19] arm/gicv4-its: Add GICv4 ITS command definitions Mykyta Poturai
2026-02-11  8:28   ` Mykola Kvach
2026-02-02 16:14 ` [RFC PATCH 01/19] arm/gicv4 add management structure definitions Mykyta Poturai
2026-02-11  8:28   ` Mykola Kvach
2026-02-02 16:14 ` [RFC PATCH 04/19] arm/its: Add vlpi configuration Mykyta Poturai
2026-02-02 16:14 ` [RFC PATCH 03/19] arm/its: Export struct its_device Mykyta Poturai
2026-02-02 16:14 ` [RFC PATCH 05/19] arm/irq: Add hw flag to pending_irq Mykyta Poturai
2026-02-02 16:14 ` [RFC PATCH 06/19] arm/gicv4-its: Add VLPI map/unmap operations Mykyta Poturai
2026-02-11  8:31   ` Mykola Kvach
2026-02-02 16:14 ` [RFC PATCH 07/19] xen/domain: Alloc enough pages for VCPU struct Mykyta Poturai
2026-02-02 16:45   ` Jan Beulich
2026-02-02 16:14 ` [RFC PATCH 08/19] arm/gic: Keep track of GIC features Mykyta Poturai
2026-02-12  7:00   ` Mykola Kvach
2026-02-02 16:14 ` [RFC PATCH 09/19] arm/its: Implement LPI invalidation Mykyta Poturai
2026-02-02 16:14 ` [RFC PATCH 11/19] arm/its: Add ITS VM and VPE allocation/teardown Mykyta Poturai
2026-02-18 11:30   ` Mykola Kvach
2026-02-02 16:14 ` [RFC PATCH 10/19] arm/its: Keep track of BASER regs Mykyta Poturai
2026-02-12  7:52   ` Mykola Kvach
2026-02-02 16:14 ` [RFC PATCH 13/19] arm/gic: VPE scheduling Mykyta Poturai
2026-02-18 11:30   ` Mykola Kvach
2026-02-02 16:14 ` [RFC PATCH 12/19] arm/gic: Add VPENDBASER/VPROPBASER accessors Mykyta Poturai
2026-02-18 11:30   ` Mykola Kvach
2026-02-02 16:14 ` [RFC PATCH 14/19] arm/its: VPE affinity changes Mykyta Poturai
2026-02-18 21:00   ` Mykola Kvach
2026-02-02 16:14 ` [RFC PATCH 16/19] arm/gic: Fix LR group handling for GICv4 Mykyta Poturai
2026-02-18 21:00   ` Mykola Kvach
2026-02-02 16:14 ` [RFC PATCH 15/19] arm: Add gicv4 to domain creation Mykyta Poturai
2026-02-18 21:00   ` Mykola Kvach
2026-02-02 16:14 ` [RFC PATCH 18/19] arm/gic: Add VPE proxy support Mykyta Poturai
2026-02-19 16:00   ` Mykola Kvach
2026-02-02 16:14 ` [RFC PATCH 19/19] arm/gicv4: Add GICv4 to the build system Mykyta Poturai
2026-02-19 11:30   ` Mykola Kvach
2026-02-02 16:14 ` [RFC PATCH 17/19] arm/gicv4: Handle doorbells Mykyta Poturai
2026-02-19 11:30   ` Mykola Kvach
2026-02-03 10:01 ` [RFC PATCH 00/19] GICv4 Support for Xen Bertrand Marquis
2026-02-03 12:24   ` Mykyta Poturai
2026-02-03 16:27     ` Bertrand Marquis
2026-02-13 11:36   ` Mykola Kvach
2026-02-13 11:48     ` Julien Grall
2026-02-13 12:18       ` Mykola Kvach
2026-03-17  9:11   ` Mykola Kvach

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.