[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] xen/arm: gic-v2: disable interrupt bypass on CPU shutdown
- To: Mykola Kvach <xakep.amatop@xxxxxxxxx>
- From: Luca Fancellu <Luca.Fancellu@xxxxxxx>
- Date: Mon, 20 Apr 2026 11:41:21 +0000
- Accept-language: en-GB, en-US
- Arc-authentication-results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) smtp.rcpttodomain=gmail.com smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com])
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none
- Arc-message-signature: i=2; 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=GivgOMtdmsOupdEf24L90Bwdbr214++lde9BKw9Fngs=; b=MOZmQhb3RmJep4wACttOXrf6i88lf1mw9dcvIGYjwCdWGks8+doH3TSZwvoJidJq44MhfE19UptHuxQgeFL8JWgNZIGdrVWfRor6wlIxwMn+lAS/Dac0bAM9bd7hp2H5OpBH0HOrBWN7fuZ3TKfLYtk1C/ig1lKj/T+N7XAyfwbSXHTTWBBoh729vQGXSmItwlMWuQo92FBjT/ranei0vsmqRfCD8BPG0ecO/w6ygTTF80dWiVlZIXb/pe4Jntr/kg2OmduY6de3iyHqn2ldFGv79DoLcu0Fei0ARdrHl3izCRJQx++ksp/jKO7x4DxfGotagl5aPFMQRQH9bT1c8g==
- 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=GivgOMtdmsOupdEf24L90Bwdbr214++lde9BKw9Fngs=; b=mTNzHrAm7F3ak6t8iLDCtL6KoiM/dzXiJCva11hgui3zEU2Hk7r8gehemviJcmJRQa/cGraa38sCCc/vt0meESz31QvdlZ4dzTaij1W6BWbVrA9B/fXgyReBJoKwT3ohB0i8IW95M14yiEpbsIa6matdAVl1ztjjuacaex4dkP3KZCJedhfaeIl7MpN80AKzXAUFyDK5bbyh69WvPu/9MYe0MFHIHieAjEBn2e+HoLgMxVQUZSbUUX5yY5vLIsM0rQr2IYGuaWbl1tig9Yl2EFeWvIloX0B1+lcuT1nrtlJUFJvkFhcaxEtb+KQ+KK59Edzy+g7ST14XBS8PLzFmSA==
- Arc-seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=y0WCZwIjDzOJCvLPW8GoXR9fIbSi7eyqGNEbIdS9en6CdyHQIGbh1UQMO94U+MEl2C5+IdbLbLD3gdKY+aI7c/MA/9oCr8mLiP+Lwx8j1HzTEeOIP6nI2nqPOzUdUxQwGcsPfxXChlEvyGrKZyujIW6wPk/D+aJFGx94SCFrAh5BuoPefplaHwSaa4V36tQH61O3NK1wlzUFOAq8jgUWLgaFeZko9kNDJSpzeaC5FnDpnQImexoYcIS6bEwLDfqKpcaZMP0k/5Aat5XCfa4bjpSLeiAEYJbuoZJqUm11Yx4azl5hIQ6reVShlhva+ItcZUohktfRZFHpZlA6Uj61aQ==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YVuQwUkipVfHPn4PXeVqZBGOOR24c+IuHMkYlYzti6Us6gOQFNr8xi3JOq4s30anz1jGZu6QRaVhvLP7GSTMtI6z1zjPq0OJAkvnwcIJdNsB1Ky3TTL41eaDxdEgnUGR9W3Ja8FtZXHhG7arJZ6g2Wmj1Oxfpm/1qZHqXV4c87dcgH64FKtcvL9Ku93awpD47G4iZCasSJV40Ow8VzTLwjt6QpH1GZurXehAE/51f9szbmKDNmncb2mH5YI7GxsjeQ7W5UuadhPKQEw4Q89scs12KZflTrTDTqnu0Q1USKMuHmmys0ORnPljt0/M3OpcoKiAAhr97Btcx8dzwcKBlA==
- Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=arm.com header.i="@arm.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=selector1 header.d=arm.com header.i="@arm.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
- Authentication-results-original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
- Cc: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Mykola Kvach <mykola_kvach@xxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Bertrand Marquis <Bertrand.Marquis@xxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>
- Delivery-date: Mon, 20 Apr 2026 11:42:33 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
- Nodisclaimer: true
- Thread-index: AQHcyM3ZwfiMQ0fViEyMjacB3wgBCLXn43iA
- Thread-topic: [PATCH] xen/arm: gic-v2: disable interrupt bypass on CPU shutdown
Hi Mykola,
> On 10 Apr 2026, at 10:36, Mykola Kvach <xakep.amatop@xxxxxxxxx> wrote:
>
> From: Mykola Kvach <mykola_kvach@xxxxxxxx>
>
> The GICv2 CPU shutdown path currently writes 0 to GICC_CTLR.
>
> Per IHI0048B.b section 2.3.1, clearing IRQBypDisGrp{0,1} and
> FIQBypDisGrp{0,1} selects bypass rather than deasserted interrupt
> outputs when the CPU interface stops driving them. Tables 2-2 and 2-3
> show that a zeroed GICC_CTLR can fall back to the legacy IRQ/FIQ inputs
> instead of fully disabling the interface.
>
> Fix this by reading GICC_CTLR, setting the bypass-disable bits, and
> clearing both group-enable bits before writing the value back. Keep the
> existing GICC_CTL_ENABLE definition for the init path and use a separate
> mask for the shutdown-side group-enable handling.
>
> Section 2.3.2 also states that wakeup event signals remain available
> even when both GIC interrupt signaling and interrupt bypass are
> disabled, so disabling bypass does not break the power-management use
> case, i.e. suspend modes.
>
> Fixes: 5e40a1b4351e ("arm: SMP CPU shutdown")
> Signed-off-by: Mykola Kvach <mykola_kvach@xxxxxxxx>
> ---
> xen/arch/arm/gic-v2.c | 7 ++++++-
> xen/arch/arm/include/asm/gic.h | 21 +++++++++++++++++++--
> 2 files changed, 25 insertions(+), 3 deletions(-)
>
> diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c
> index b23e72a3d0..22aa25bad0 100644
> --- a/xen/arch/arm/gic-v2.c
> +++ b/xen/arch/arm/gic-v2.c
> @@ -408,7 +408,12 @@ static void gicv2_cpu_init(void)
>
> static void gicv2_cpu_disable(void)
> {
> - writel_gicc(0x0, GICC_CTLR);
> + uint32_t ctlr = readl_gicc(GICC_CTLR);
> +
> + ctlr |= GICC_CTL_BYP_DIS_MASK;
If the GIC v2 implementation includes the Security Extensions, the bit 7-8
are reserved, but now we are unconditionally writing on them.
Cheers,
Luca
|