[PATCH 0/2] xen/arm: handle Dom0 vCPU limits from GICv3 redistributors

Mykola Kvach posted 2 patches 1 day, 13 hours ago
Patches applied successfully (tree, apply log)
git fetch https://gitlab.com/xen-project/patchew/xen tags/patchew/cover.1779430299.git.mykola._5Fkvach@epam.com
docs/misc/xen-command-line.pandoc |  8 ++++++++
xen/arch/arm/vgic-v3.c            |  3 ++-
xen/arch/arm/vgic.c               | 10 +++++++---
3 files changed, 17 insertions(+), 4 deletions(-)
[PATCH 0/2] xen/arm: handle Dom0 vCPU limits from GICv3 redistributors
Posted by Mykola Kvach 1 day, 13 hours ago
From: Mykola Kvach <mykola_kvach@epam.com>

This series fixes and documents a Dom0 construction corner case on
Arm GICv3 systems where Dom0 uses the host redistributor layout.

When the requested Dom0 vCPU count exceeds the number of virtual
redistributor frames covered by the exposed host-layout GICR regions,
the vGICv3 per-vCPU init path rejects the first uncovered vCPU. However,
the generic vGIC init path ignored that error, so vcpu_create() could
succeed with an invalid per-vCPU vGIC state. Dom0 could then observe more
possible CPUs than Xen can back with emulated redistributors and hang
during secondary CPU bring-up.

The first patch propagates the per-vCPU vGIC init failure and fixes the
host-layout redistributor region count when all hardware regions have
been consumed. With the fix, Dom0 construction stops creating secondary
vCPUs at the first vCPU whose redistributor frame is not covered, while
preserving the existing best-effort Dom0 policy and allowing Dom0 to boot
with the vCPUs created before the failure.

The second patch documents the resulting Arm GICv3 constraint for
dom0_max_vcpus.

Mykola Kvach (2):
  xen/arm: propagate vGIC vCPU init failures
  docs: Document Arm GICv3 limit for dom0_max_vcpus

 docs/misc/xen-command-line.pandoc |  8 ++++++++
 xen/arch/arm/vgic-v3.c            |  3 ++-
 xen/arch/arm/vgic.c               | 10 +++++++---
 3 files changed, 17 insertions(+), 4 deletions(-)

-- 
2.43.0