[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[REQUIREMENTS][PATCH v2 1/6] reqs: clarify guest GICv3 virtual register model


  • To: xen-devel@xxxxxxxxxxxxxxxxxxxx
  • From: Mykola Kvach <mykola_kvach@xxxxxxxx>
  • Date: Fri, 17 Jul 2026 10:11:22 +0300
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com; dkim=pass header.d=epam.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=7eIyVAq2TjvKOCUTXCBrr0CN8dsLL7rvIdBMxGGR0TQ=; b=MS40/3/8pfVf8GZ5J3ymAm7Yj1AVx/jNi2y6P2SLchVB0kcz/z8UobXpxOJqHEL6B4x7jSYHxfUTbJnXkOeoc1sOr9P2BYYDbvuws11QVAVOF5b20lxDIwCf27xRd2WA2R6mQPV3R1btgFO4+KDSOKg+dRcmWaGi7IK2qKhiAul9NQCJFgU2yDJqHJKlxngDJeV9ptHzNMCXcNAS2yo8DHOFz3l4k93c00zXf9pKeqkNo5VXbmz2YSD5V2YsXrxMaQFTobCuEw/sYBRW0Y+o4kaYl7mIT4m4Ti7i5Asv5Z0C/Tj1pPzobgLKz7f96GxN+scySPXv52r9IHoHEL990g==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RAPvapBvKI/vJeqAF8+wLuMaGeMkUX9WztCw5aUp4I4qNkn9p3zlHnA2EnNTzkqCz3sYCwvV6KiC6+wwaRr+k0X7SJ2dPLeNky2CZD859H6zQgKvPjTTO2RsB9q6c50Zx9OkfvrZAiK3raIo09//ayyIj4Lpdw2nIISbL85NLlWZucIqyvzqf6GxohJZmNb2uR7Ib4bwy0y56M8mCwgruklWl99nqV9P2IXzcPXoZe5QPDqZ6ELT3w3keOnDy0PEH/2sRDvAp0sQyhApeJW775ZkkuQ/ARMN8jUY3Xrktuk5o37vF/OI4NTLqka8pPQbR+fg8RYQ0JhxKjJnhWDTug==
  • Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=epam.com;
  • Delivery-date: Fri, 17 Jul 2026 07:12:10 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

Clarify the guest GICv3 requirements by adding an Assumption of Use for Xen's
limited virtual GICv3 pending-state and active-state MMIO observation model.

Xen exposes a virtual GICv3 ABI rather than a complete emulation of the
physical GICv3 Distributor and Redistributor programmer's model. Virtual
interrupt lifecycle state is maintained through Xen virtual interrupt state and
through the virtual CPU interface acknowledge and completion path.

Do not add AoU coverage for DS, security-extension registers, legacy SGI MMIO,
WAKER or unimplemented ePPI/eSPI bits. Those cases follow architectural access
or capability rules rather than a Xen-specific guest compatibility assumption.

Keep exposed eSPI pending-state and active-state MMIO register groups in the
AoU, because Xen can expose and allow guest use of eSPIs while still providing
limited pending/active MMIO observation semantics for those INTIDs.

Signed-off-by: Mykola Kvach <mykola_kvach@xxxxxxxx>
---
Changes in v2:
- rephrase XenAoU~arm64_vm_compat_xen_virt_gicv3_reg_model~1 add details
  about Xen implementation.
---
 .../arm64/gicv3.rst                           | 37 +++++++++++++------
 1 file changed, 26 insertions(+), 11 deletions(-)

diff --git 
a/software_safety_reqs/domain_creation_and_runtime/domain_partially_emulated_resources/arm64/gicv3.rst
 
b/software_safety_reqs/domain_creation_and_runtime/domain_partially_emulated_resources/arm64/gicv3.rst
index 2ce30e5..e16576f 100644
--- 
a/software_safety_reqs/domain_creation_and_runtime/domain_partially_emulated_resources/arm64/gicv3.rst
+++ 
b/software_safety_reqs/domain_creation_and_runtime/domain_partially_emulated_resources/arm64/gicv3.rst
@@ -23,22 +23,37 @@ Rationale:
 Assumption of Use on a VM
 ^^^^^^^^^^^^^^^^^^^^^^^^^
 
-Domain shall not write to GICD_ISACTIVER<n> registers
------------------------------------------------------
+Guest compatibility with limited interrupt-state MMIO observation
+-----------------------------------------------------------------
 
-`XenAoU~arm64_vm_no_write_gicd_isactiver~1`
+`XenAoU~arm64_vm_compat_xen_virt_gicv3_reg_model~1`
 
 Description:
-Domains shall not write to GICD_ISACTIVER<n> registers.
+Guest software shall not rely on the GICv3 Distributor or Redistributor
+pending-state and active-state set/clear register aliases as an
+authoritative view of virtual interrupt state.
+
+This applies to GICD_ISPENDR<n>, GICD_ICPENDR<n>,
+GICD_ISACTIVER<n>, GICD_ICACTIVER<n>, their extended-SPI equivalents
+when exposed, and GICR_ISPENDR0, GICR_ICPENDR0,
+GICR_ISACTIVER0 and GICR_ICACTIVER0.
+
+For these registers:
+
+ - reads return zero regardless of Xen's internal pending or active state;
+ - set-pending writes are supported;
+ - clear-pending and clear-active writes are ignored;
+ - set-active writes are unsupported and result in a guest data abort.
+
+Guest software shall use the virtual CPU interface acknowledge and
+completion path for interrupt lifecycle handling.
 
 Rationale:
-Xen does not support the emulation of these registers, therefore the domain
-write accesses to GICD_ISACTIVER<n> registers will result in a fault injection.
-Also the domain write accesses to GICD_ICACTIVER<n> registers will be ignored.
-The more, the reading of an active status of the interrupts via said registers
-is not supported as well and Xen always exposes all bits in them as RAZ which
-might be an incorrect state of the GIC and confuse the domain's expectations.
-The domain should not rely on these registers.
+The virtual GICv3 implementation maintains interrupt state in Xen's
+internal pending queues and hardware List Registers, but does not
+reconstruct the above MMIO register state from those sources. Its
+readback and write behavior therefore differs from the Arm GICv3
+programmer's model.
 
 Domain shall not access ICC_SGI0R_EL1 and ICC_ASGI1R_EL1 registers
 ------------------------------------------------------------------
-- 
2.43.0




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.