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

Re: [PATCH v2] xen/arm: gicv3: initialize eSPI unconditionally


  • To: Leonid Komarianskyi <Leonid_Komarianskyi@xxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: "Orzel, Michal" <michal.orzel@xxxxxxx>
  • Date: Tue, 6 Oct 2026 12:22:58 +0200
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=epam.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0)
  • 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=lfNd1lVOmWIcKJtfAvE5HZDVpRKAV40UT90Eetbqppk=; b=hM32WG3VeqSnklFoynkr3CPKlOmeZIrGh5qIh5lN8TsDla8NTCgJRiFfmpUEQCTnLetY9PNbRuMNhaIp7WCHpBycyyPQRCOn/RBIqyFW55HHiBOKhhXzJDaV6gBbs7I2ltkQkjoGfmyMVjQw+RnUd9DSDbcZQEJcfZNwvaUVFKjEIuZLNILJALPjjynmUyebt0nQgs48acElRb5WwwPU9+4VW9vN1tul2utZUmzFXRcCFl8m9dCXfr5K3VzZ1gR27gPOsQ9QK9NQFEy4GBO3+SiC62Vjdz9MZiYWHRixHXvoAtatoCvc1tFkKj/z3Gn9DMcZmBpXru3mUqyMVu6krw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=kHBoaaWfMBP1gqFg7pWv8yV8/piN0nzJBWhiLE+z1AceNVy8Oc3l5iZMy6AEiYXzBefEUB+yOcNt2UMBgDUKWQ8L7vumc8KeYbo9YClbPxeVHxK1j381vjKxKLcFkz4TVfUwEGNOg3UpU4GYA4Fv48tWeV8oTa4NYPSefGLb5gMgPa4Cz+FYOqb5Hg1qA4Em36JF9Ep2CgLc1VSOGIYMm7h8ity02s+ygHuISMF2DW4z2i4o//9+PJlS4AG0yUFMpvhPUNiZlBbrnBXxgqIZQYiTuJz6V6fZjwbacjaHqxiC9DzbxGrmDmPWMUPmfUSoaiyZEESiL5JmLSz/ynI5qA==
  • Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
  • Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, "Volodymyr Babchuk" <Volodymyr_Babchuk@xxxxxxxx>, Julien Grall <jgrall@xxxxxxxxxx>
  • Delivery-date: Tue, 06 Oct 2026 10:23:15 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>


On 22-Sep-26 20:58, Leonid Komarianskyi wrote:
> Since the firmware may initialize eSPIs before Xen, and without
> CONFIG_GICV3_ESPI enabled, Xen would not reinitialize them properly
> during boot. In such cases, once the GIC is re-enabled in Xen,
> interrupts may be received that cannot be handled.
> 
> To ensure proper operation on hardware with eSPI feature, even when the eSPI
> config is disabled, gicv3_dist_espi_common_init() should be invoked
> regardless of whether CONFIG_GICV3_ESPI is enabled or not. This will not
> affect hardware without eSPI support, as the function checks if the
> hardware supports eSPIs by reading the GICD_TYPER.ESPI field (using
> GICD_TYPER_ESPIS_NUM macro), which indicates whether the extended SPI
> range is supported. If the hardware does not support eSPI, the function
> will not perform any actions.
> 
> There are no functional changes for setups where CONFIG_GICV3_ESPI=y.
> 
> Suggested-by: Julien Grall <jgrall@xxxxxxxxxx>
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@xxxxxxxx>
> Acked-by: Julien Grall <jgrall@xxxxxxxxxx>
> ---
> Changes in v2:
> - rebased on the current staging
> - placed Suggested-by tag first to keep tags in chronological order
> - added Acked-by from Julien Grall
> 
> This is a follow-up patch related to the discussion:
> https://lore.kernel.org/xen-devel/820704d0-4047-4f02-a058-01daba2765f1@xxxxxxx/
> 
> Sending v2 with the requested changes, as I only now noticed
> that this patch has not been merged yet.
> ---
>  xen/arch/arm/gic-v3.c                  | 32 ++++++++++++++------------
>  xen/arch/arm/include/asm/gic_v3_defs.h |  2 --
>  2 files changed, 17 insertions(+), 17 deletions(-)
> 
> diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> index acdac22953..463769d77b 100644
> --- a/xen/arch/arm/gic-v3.c
> +++ b/xen/arch/arm/gic-v3.c
> @@ -703,17 +703,32 @@ unsigned int gic_number_espis(void)
>      return gic_hw_ops->info->nr_espi;
>  }
>  
> +static void __init gicv3_dist_espi_init_aff(uint64_t affinity)
> +{
> +    unsigned int i;
> +
> +    for ( i = 0; i < gicv3_info.nr_espi; i++ )
> +        writeq_relaxed_non_atomic(affinity, GICD + GICD_IROUTERnE + i * 8);
> +}
> +#else
> +
NIT: no blank line here. I'll remove on commit.

Reviewed-by: Michal Orzel <michal.orzel@xxxxxxx>

~Michal




 


Rackspace

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